java - 如果我在 onCreate 方法中添加 GraphViewer 代码,应用程序会崩溃

标签 java android xml android-graphview

如果我在 onCreate 方法之外添加 GraphViewer Java 代码,我会收到消息:无法解析符号 addSeries。但是当我将代码放入 onCreate 方法中时,应用程序在启动屏幕后崩溃。请帮忙(代码在**之间突出显示):

package yourhome;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;


import com.jjoe64.graphview.GraphView;
import com.jjoe64.graphview.series.DataPoint;
import com.jjoe64.graphview.series.LineGraphSeries;


import smssca.stefandraegersoftware.de.simplemysqlconnectionapp.datasource.ActivityDataSource;

public class Hauptfenster extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        **GraphView graph = (GraphView) findViewById(R.id.graph);
        LineGraphSeries<DataPoint> series = new LineGraphSeries<>(new DataPoint[] {
                new DataPoint(0, 1),
                new DataPoint(1, 5),
                new DataPoint(2, 3)
        });
        graph.addSeries(series);**
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_hauptfenster);

       final TextView textView = (TextView) findViewById(R.id.textView);

        Button lesenBtn = (Button) findViewById(R.id.lesenBtn);
        lesenBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new ActivityDataSource(textView).execute("someParams");
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_hauptfenster, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) { return true;}
        return super.onOptionsItemSelected(item);
    }
}

最佳答案

移动

GraphView graph = (GraphView) findViewById(R.id.graph);
    LineGraphSeries<DataPoint> series = new LineGraphSeries<>(new DataPoint[] {
            new DataPoint(0, 1),
            new DataPoint(1, 5),
            new DataPoint(2, 3)
    });
graph.addSeries(series);

下面

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_hauptfenster);

大多数情况下,这两行应该首先在 onCreate 方法中调用

当前您正在尝试findViewById(R.id.graph);,此时根本没有View - 这些是在中设置的>setContentView 下面

关于java - 如果我在 onCreate 方法中添加 GraphViewer 代码,应用程序会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42954464/

相关文章:

java - 将android连接到远程sql server

JavaRX 分页 - 在每次交互中而不是在最后观察 - 通用分页器

java.sql.SQLException : [SQLITE_CONSTRAINT]

java - 如何@Autowire隐藏在ProxyFactoryBean后面的bean?

android - 在没有 ViewModel 的情况下使用 Room

c# - 从 XML 文件中读取元素

java - 警报对话框构建器没有关闭或取消方法

java - RecyclerView在最新版本中无法实例化。 Android Studio 的

PHP 循环通过 GPX 来计算赛道的总距离

xml - 如何在 XSLT 中导入 XML 文件并解析它