Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在单个活动中处理来自多个意图的多个数据_Android_Android Intent - Fatal编程技术网

Android 在单个活动中处理来自多个意图的多个数据

Android 在单个活动中处理来自多个意图的多个数据,android,android-intent,Android,Android Intent,我使用两个活动(ListActivity和DatabaseActivity),并将这两个活动定向到单个活动(DetailActivity)。我在这两个活动上都使用intent和putextra()将数组数据发送到DetailActivity。问题就在这里,我不知道如何区分单个活动中的不同意图。这是我的ListActivity代码 我认为问题主要在于DetailActivity中的else if语句(我得到的是nullpointerexception)和if语句工作正常 public class

我使用两个活动(ListActivity和DatabaseActivity),并将这两个活动定向到单个活动(DetailActivity)。我在这两个活动上都使用intent和putextra()将数组数据发送到DetailActivity。问题就在这里,我不知道如何区分单个活动中的不同意图。这是我的ListActivity代码

我认为问题主要在于DetailActivity中的else if语句(我得到的是nullpointerexception)和if语句工作正常

public class ListActivity extends AppCompatActivity {

@Override
public void onCreate(Bundle savedInstanceState){

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


    final ArrayList<AppName> appNames = new ArrayList<AppName>();

    appNames.add(new AppName("app1","description1"));
    appNames.add(new AppName("app2","description2"));
    appNames.add(new AppName("app3","description3"));
    appNames.add(new AppName("app4","description4"));
    appNames.add(new AppName("app5","description5"));
    appNames.add(new AppName("app6","description6"));
    appNames.add(new AppName("app7","description7"));
    appNames.add(new AppName("app8","description8"));
    appNames.add(new AppName("app9","description9"));
    appNames.add(new AppName("app10","description10"));

    AppAdapter adapter = new AppAdapter(this , appNames);

    ListView listView = (ListView) findViewById(R.id.list);

    listView.setAdapter(adapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
                                       @Override
                                       public void onItemClick(AdapterView<?> parent, View view, int position, long id){

                                           String[] appdescription = getResources().getStringArray(R.array.appdescriptionname);
                                           final String appdescipl = appdescription[position];

                                           Intent intent1 = new Intent(getApplicationContext(), DetailActivity.class);
                                           intent1.putExtra("des","mydes");
                                           intent1.putExtra("appdescipl" , appdescipl);
                                           startActivity(intent1);



                                       }

   }

    );



}
}


提前感谢

您不需要区分意图。getIntent()只返回启动活动的意图。试试这个-

String description =null;

description = getIntent().getStringExtra("appdescipl");

if(description==null) description = getIntent().getStringExtra("appdatadescipl");

descriptionofapp.setText(description);
试试这个

Bundle extras = getIntent().getExtras();

if(extras.containsKey("des")){
    description = extras.getString("appdescipl");
    descriptionofapp.setText(description);
}
else if (extras.containsKey("data")){
    description = extras.getString("appdatadescipl");
    descriptionofapp.setText(description);
}

//...... conditions / check with unique key to differentiate from calling activity

如果有帮助的话,你可以看看这个。我不认为这会对功能造成任何问题。谢谢你的回复,但是如果我必须指导更多的活动到细节活动,我能做什么??有什么想法吗。。谢谢,请详细说明。如果您想将更多的活动指向详细活动,只需在所有活动中声明意图的实例。这就是你在最后两个活动中所做的,对吗?
String description =null;

description = getIntent().getStringExtra("appdescipl");

if(description==null) description = getIntent().getStringExtra("appdatadescipl");

descriptionofapp.setText(description);
Bundle extras = getIntent().getExtras();

if(extras.containsKey("des")){
    description = extras.getString("appdescipl");
    descriptionofapp.setText(description);
}
else if (extras.containsKey("data")){
    description = extras.getString("appdatadescipl");
    descriptionofapp.setText(description);
}

//...... conditions / check with unique key to differentiate from calling activity