Android StartActivity(Intent)-> NullPointerException(与onclicklistener有关)

桑蒂·伊卢斯

此代码停止工作,我不明白为什么。它返回此值,并在尝试执行StartActivity(Intent)[在OnClick内部的代码中标记]时崩溃:

“ java.lang.NullPointerException:尝试在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255 )”

这是活动:

public class MainActivity extends ListActivity implements View.OnClickListener {

TextView responseField;

private ScoresDataSource datasource;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    responseField = (TextView)findViewById(R.id.textView);
    findViewById(R.id.buttonScore).setOnClickListener(this);
    findViewById(R.id.buttonAdd).setOnClickListener(this);

    datasource = new ScoresDataSource(this);
    datasource.open();


    List<Score> scores = datasource.getAllScores();

    ArrayAdapter<Score>
            adapter = new ArrayAdapter<Score>(
            this,
            android.R.layout.simple_list_item_1,
            scores);
    setListAdapter(adapter);    }

@Override
protected void onResume() {
    datasource.open();
    super.onResume();
}
@Override
protected void onPause() {
    datasource.close();
    super.onPause();
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

public void onClick(View view)
{
    ArrayAdapter<Score> adapter =
            (ArrayAdapter)getListAdapter();
    Score c = null;

    switch (view.getId()){
        case R.id.buttonScore:

            Intent scorePage = new Intent(this, ScoreboardActivity.class);
            startActivity(scorePage);
       //[CRASHES HERE]     <---------------


            break;
        case R.id.buttonAdd:

            EditText nameField = (EditText)findViewById(R.id.name);
            EditText scoreField = (EditText)findViewById(R.id.score);
            String name = nameField.getText().toString();
            String score = scoreField.getText().toString();

            try {
                int scoreInt = Integer.parseInt(score);
                responseField.setText("SCORE RECEIVED: " + System.getProperty("line.separator") + name + "  " + score);
                c = datasource.createScore(score, name);
                adapter.add(c);
            }
            catch(Exception e){
                responseField.setText("Not Valid Score");
            }

            adapter.notifyDataSetChanged();
 break; }

}
}  

这是活动的xml工作表:

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">



    <Button
        android:layout_width="271dp"
        android:layout_height="wrap_content"
        android:text="AddScore"
        android:id="@+id/buttonAdd" />


<EditText
    android:layout_width="187dp"
    android:text="Player"
    android:layout_height="wrap_content"
    android:id="@+id/name" />

<EditText
    android:layout_width="184dp"
    android:text="Score"
    android:layout_height="wrap_content"
    android:id="@+id/score" />

<TextView
    android:layout_width="226dp"
    android:layout_height="70dp"
    android:text=""
    android:id="@+id/textView" />

<Button
    android:layout_width="222dp"
    android:layout_height="73dp"
    android:text="ScoreBoard"
    android:id="@+id/buttonScore" />

<ListView
    android:layout_width="39dp"
    android:layout_height="24dp"
    android:id="@android:id/list"
    android:layout_gravity="center_horizontal"
    android:visibility="invisible" />

Android清单:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".ScoreboardActivity"
        android:label="Scoreboard" >
    </activity>
</application>

目标活动:

public class ScoreboardActivity extends ListActivity implements View.OnClickListener {



private ScoresDataSource datasource;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_scores);

    findViewById(R.id.buttonAdd).setOnClickListener(this);
    findViewById(R.id.buttonDelete).setOnClickListener(this);

    datasource = new ScoresDataSource(this);
    datasource.open();


    List<Score> scores = datasource.getAllScores();

    ArrayAdapter<Score>
            adapter = new ArrayAdapter<Score>(
            this,
            android.R.layout.simple_list_item_1,
            scores);

//Sorting
    adapter.sort(new Comparator<Score>() {
        @Override
        public int compare(Score sc1, Score sc2) {
            return Integer.toString(sc1.getScore()).compareTo(Integer.toString(sc2.getScore()));         
        }
    });

    setListAdapter(adapter);
}

@Override
protected void onResume() {
    datasource.open();
    super.onResume();
}
@Override
protected void onPause() {
    datasource.close();
    super.onPause();
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

public void onClick(View view)
{
    ArrayAdapter<Score> adapter =
            (ArrayAdapter)getListAdapter();
    Score c = null;
    Random r = new Random();
    switch (view.getId()){
        case R.id.buttonBack:
        Intent main = new Intent(this, MainActivity.class);
        startActivity(main);
            break;

        case R.id.buttonDelete:
            if(adapter.getCount()>0){
                c = adapter.getItem(0);
                datasource.deleteScore(c);
                adapter.remove(c);
            }
            break;
    }
    adapter.notifyDataSetChanged();
}

}

佩德罗·奥利维拉(Pedro Oliveira)

您的错误是告诉您您正在尝试对空对象设置点击侦听器。

如果您说启动下一个活动时触发该错误,则您ScoreboardActivity尝试为此视图之一设置点击侦听器时出错:

findViewById(R.id.buttonAdd).setOnClickListener(this);
findViewById(R.id.buttonDelete).setOnClickListener(this);

检查您activity_scores.xml是否确实有这些ID。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

android intent startActivity()和sendBroadcast()

来自分类Dev

有关Intent Extras的NullPointerException

来自分类Dev

startActivity(intent)没有打开活动

来自分类Dev

找不到符号方法startActivity(android.content.Intent)

来自分类Dev

带有动画的Android startActivity

来自分类Dev

无法解析方法'startActivity(android.content.Intent); -在Android设备上打开URL

来自分类Dev

startActivity(intent)它不起作用?当我的DemoActivity使用android:launchMode =“ singleTask”时,

来自分类Dev

对于新视图类型,未定义方法startactivity(intent)。onclicklistener()

来自分类Dev

Android:LruCache与位图有关的问题

来自分类Dev

与发布android应用有关的问题

来自分类Dev

Android-有关LocationManager的说明

来自分类Dev

如何从具有回收视图的片段中使用 startactivity(intent)?

来自分类Dev

带有NullPointerException的新onClickListener(Android)

来自分类Dev

Android onClickListener NullPointerException

来自分类Dev

startActivity(intent)不起作用

来自分类Dev

Android:获取有关应用购买的信息

来自分类Dev

Android SyncAdapter:如何获取有关特定同步的通知

来自分类Dev

Android,与ViewPager和DrawerLayout有关的问题

来自分类Dev

有关Android代码结构的建议。后台流程

来自分类Dev

Android-有关使GMailSender工作的问题?

来自分类Dev

有关android API支持的开发成本

来自分类Dev

无法打开Android Studio。(与JDK有关的问题)

来自分类Dev

接收有关Android中多个特征的通知

来自分类Dev

有关集成Android PDF库的简单问题

来自分类Dev

无法打开Android Studio。(与JDK有关的问题)

来自分类Dev

Android SharedPreferences,与保存简单的int变量有关的问题

来自分类Dev

Android WebView有关覆盖URL加载的问题

来自分类Dev

Android重绘有关语言更改的视图

来自分类Dev

Android StartActivity选项菜单

Related 相关文章

  1. 1

    android intent startActivity()和sendBroadcast()

  2. 2

    有关Intent Extras的NullPointerException

  3. 3

    startActivity(intent)没有打开活动

  4. 4

    找不到符号方法startActivity(android.content.Intent)

  5. 5

    带有动画的Android startActivity

  6. 6

    无法解析方法'startActivity(android.content.Intent); -在Android设备上打开URL

  7. 7

    startActivity(intent)它不起作用?当我的DemoActivity使用android:launchMode =“ singleTask”时,

  8. 8

    对于新视图类型,未定义方法startactivity(intent)。onclicklistener()

  9. 9

    Android:LruCache与位图有关的问题

  10. 10

    与发布android应用有关的问题

  11. 11

    Android-有关LocationManager的说明

  12. 12

    如何从具有回收视图的片段中使用 startactivity(intent)?

  13. 13

    带有NullPointerException的新onClickListener(Android)

  14. 14

    Android onClickListener NullPointerException

  15. 15

    startActivity(intent)不起作用

  16. 16

    Android:获取有关应用购买的信息

  17. 17

    Android SyncAdapter:如何获取有关特定同步的通知

  18. 18

    Android,与ViewPager和DrawerLayout有关的问题

  19. 19

    有关Android代码结构的建议。后台流程

  20. 20

    Android-有关使GMailSender工作的问题?

  21. 21

    有关android API支持的开发成本

  22. 22

    无法打开Android Studio。(与JDK有关的问题)

  23. 23

    接收有关Android中多个特征的通知

  24. 24

    有关集成Android PDF库的简单问题

  25. 25

    无法打开Android Studio。(与JDK有关的问题)

  26. 26

    Android SharedPreferences,与保存简单的int变量有关的问题

  27. 27

    Android WebView有关覆盖URL加载的问题

  28. 28

    Android重绘有关语言更改的视图

  29. 29

    Android StartActivity选项菜单

热门标签

归档