在主页中,它有listView
(从MySQL检索)和popup Menu
,其中popup Menu
有视图页。 查看也有listView
。
查看
点击主页或查看列表后,它会转到片段,其中有4个标签,允许用户对其进行编辑ID。
点击主页列表时
public static int ID;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> listView, View view,
int position, long id) {
ID = search.get(position).getID();
Toast.makeText(getApplicationContext(), "Edit" + ID, Toast.LENGTH_LONG).show();
Intent intent = new Intent(getApplicationContext(), ActivityB.class);
intent.putExtra("ID", ID); // pass to tabAdapter
intent.putExtra("name", name); // pass to tabAdapter
startActivity(intent);
}
});
点击查看时
public static int ID;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> listView, View view,
int position, long id) {
ID = search.get(position).getID();
Toast.makeText(getApplicationContext(), "Edit" + ID, Toast.LENGTH_LONG).show();
Intent intent = new Intent(getApplicationContext(), ActivityB.class);
intent.putExtra("ID", ID); // pass to tabAdapter
intent.putExtra("name", name); // pass to tabAdpter
startActivity(intent);
}
});
TabAdapter
public Fragment getItem(int index) {
// TODO Auto-generated method stub
if(index == 0) {
Fragment fragment=new EditInformation();
Bundle bundle = new Bundle();
bundle.putInt("ID", HomePage.ID);
fragment.setArguments(bundle);
return fragment;
}
}
EditInformation
Bundle bundle = this.getArguments();
if (getArguments() != null) {
ID = bundle.getInt("ID");
}
Toast.makeText(getActivity(),"SS"+ID,Toast.LENGTH_LONG).show();
当我单击HomePage中的列表时,它在HomePage和EditInformation中显示正确的ID。但是当我单击View中的列表时,它会显示正确的ID ,但EditInformation 中没有ID显示。
我在bundle.putInt("ID", View.ID);
之后添加bundle.putInt("ID", HomePage.ID);
,它适用于全部,但不适用于主页! HomePage列表显示其ID,但在EditInformation中显示0 id。
如何解决这个问题? 我们如何区分列表是从All还是View?感谢
答案 0 :(得分:1)
添加另一个Intent
额外信息以指明用户点击的位置。例如,在{strong>主页中OnItemClickListener
的{{1}}:
ListView
另一个intent.putExtra("FROM_HOME", true);
OnItemClickListener
ListView
总而言之,您的intent.putExtra("FROM_HOME", false);
有三个额外内容,您可以通过 ActivityB 中的Intent
获取:
让我们为这项活动引入三个变量
getIntent()
然后在private int _id;
private String _name;
private boolean _fromHome;
你可以得到这样的意图:
onCreate()
现在,您的活动拥有决定应该做什么的所有必要信息。