我创建了一个非常小的应用程序,我非常密切地基于可以在谷歌上找到的教程。应该没有问题,但现在我真的被卡住了。我有两个活动,MainActivity
和一个名为HalleActivity
的活动。
在MainActivity.java
我有这个:
public final static String EXTRA_ID = "com.fifaltra.kletterscore.ID";
java.util.ArrayList<Data> listItems=new java.util.ArrayList<Data>();
ArrayAdapter<Data> adapter;
private ListView mListView;
final Context context = this;
[...]
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
listItems.get(position).increaseCount();
Collections.sort(listItems, Data.vergleichen());
adapter.notifyDataSetChanged();
Intent intent = new Intent(context, HalleActivity.class);
intent.putExtra(EXTRA_ID, listItems.get(position).getId());
startActivity(intent);
}
});
在HalleActivity.java
中只有这个:
public class HalleActivity extends AppCompatActivity {
Intent intent = getIntent();
Bundle extras = intent.getExtras();
long id = extras.getLong(MainActivity.EXTRA_ID);
}
现在,当我启动此功能时,只要点击该项目,应用就会崩溃并且日志中包含以下内容:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{fifaltra.kletterscore/fifaltra.kletterscore.HalleActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at fifaltra.kletterscore.HalleActivity.<init>(HalleActivity.java:11)
at ...
第11行是Bundle extras = intent.getExtras();
。我不知道这里出了什么问题,因为我在互联网上找到的每一个例子看起来都是这样的,所以我很感激任何提示。
答案 0 :(得分:1)
在初始化活动之前,您无法使用getIntent()
。那是onCreate
。在此之前,它返回null,因此调用intent.getExtra()NPEs。
答案 1 :(得分:0)
也许您应该使用.getStringExtra("com.fifaltra.kletterscore.ID");
而不是捆绑。