有一个例外:
03-16 17:47:57.058: ERROR/AndroidRuntime(609): FATAL EXCEPTION: main
03-16 17:47:57.058: ERROR/AndroidRuntime(609): java.lang.RuntimeException: Unable to destroy activity {com.TravelPharmacy/com.TravelPharmacy.CountryView}: java.lang.NullPointerException
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2636)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:2654)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at android.app.ActivityThread.access$2100(ActivityThread.java:117)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:961)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at android.os.Handler.dispatchMessage(Handler.java:99)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at android.os.Looper.loop(Looper.java:123)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at android.app.ActivityThread.main(ActivityThread.java:3647)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at java.lang.reflect.Method.invokeNative(Native Method)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at java.lang.reflect.Method.invoke(Method.java:507)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at dalvik.system.NativeStart.main(Native Method)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): Caused by: java.lang.NullPointerException
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at com.TravelPharmacy.CountryView.onDestroy(CountryView.java:117)
03-16 17:47:57.058: ERROR/AndroidRuntime(609): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2623)
03-16 17:47:57.058: ERROR/AndroidRuntime(609):
... 11 more
这是onCreate of First活动,当你按下按钮(fromButton)时,它将调用另一个活动并期望返回该国家的名称
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
// final int recquestCode = 0;
final Button btnCountryfrom = (Button) findViewById(R.id.fromButton);
btnCountryfrom.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Intent pingIntent = new Intent(getApplicationContext(),CountryView.class);
pingIntent.putExtra("btnText", " ");
pingIntent.setClass(TravelPharmacy.this, CountryView.class);
startActivityForResult(pingIntent, RECEIVE_MESSAGE);
Log.i("tag for easy filter in logcat 6","I am Working!!!");
ButtonFromPressed=true;
}
});
}
获取在其他活动中选择的国家/地区的名称时覆盖 onActivityResult并在按钮
中设置国家/地区的名称 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
Button btnCountryfrom = (Button) findViewById(R.id.fromButton);
CharSequence seq = data.getCharSequenceExtra("response");
btnCountryfrom.setText(seq);
ButtonFromPressed=false;
}
}
我的第二个活动的onCreate
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.country);
mListUsers = getCountry();
lvUsers = (ListView) findViewById(R.id.countrylistView);
lvUsers.setAdapter(new ListAdapter(this, R.id.countrylistView, mListUsers));
lvUsers.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view,int position, long id)
{
Intent pongIntent = new Intent();
Log.i("tag for easy filter in logcat 1", "information you provide");
Log.i("tag for easy filter in logcat 2",mListUsers.get(position).pays);
pongIntent.putExtra("response",mListUsers.get(position).pays);
setResult(Activity.RESULT_OK,pongIntent);
finish();
Log.i("tag for easy filter in logcat 3",mListUsers.get(position).pays);
}
});
}
我的第二个活动的onDestroy()。
@Override
public void onDestroy()
{
// adapter.imageLoader.stopThread();
//mListUsers=null;
lv.setAdapter(null);
super.onDestroy();
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/widget142"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<RelativeLayout
android:id="@+id/widget143"
android:layout_height="33px"
android:background="@color/blue"
android:layout_width="fill_parent">
<ImageButton
android:id="@+id/homeImageButton"
android:layout_width="47px"
android:layout_height="34px"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
>
</ImageButton>
<TextView
android:id="@+id/countryTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Country"
android:textSize="20sp"
android:textStyle="bold"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
>
</TextView>
</RelativeLayout>
<ListView
android:id="@+id/countrylistView"
android:layout_width="match_parent" android:layout_height="250px">
</ListView>
</LinearLayout>
我将非常感谢帮助!!!
谢谢!
答案 0 :(得分:2)
检查R.layout.country上是否存在ListAdapter,看起来你遇到了问题:
findViewById(R.id.countrylistView);
因为您的listView尚未实例化。你能发布国家布局
吗?答案 1 :(得分:1)
ListAdapter是一个接口,所以你不能新建一个ListAdapter,除非你在某处创建了一个名为ListAdapter的类,这可能是一个坏主意,你应该使用不同的名称。
创建适配器时,传入列表项的布局,而不是ListView的ID。
答案 2 :(得分:1)
由于您已在another帖子中发布了问题,因此很明显问题是lv
中的activity
从未在您setAdapter
中初始化onDestroy()
{1}},导致NullPointerException
,因为它是null
,因为它显示在您的代码片段中:
@Override
public void onDestroy()
{
// adapter.imageLoader.stopThread();
//mListUsers=null;
lv.setAdapter(null);
super.onDestroy();
}
此外,当您想发布有关您的问题的更多数据时,只需编辑您的问题而不是创建一个新问题:) 我希望这会有所帮助。
答案 3 :(得分:0)
可能是,
mListUser为null或 mListUsers.get(position)为null?