尝试这样做时我真的很困惑:
让我们说我想建立一个应用程序,让你阅读有关动物的信息。
在我的主要课程上,我有一个列表视图,其中包括:猫,狗,蛇,兔子等。
如果我点击示例Dog我的其他类,我的其他layout.xml将会弹出。在这个details.xml布局中有一个Header文本,一个图片和一个maintext。
然而,文本只是null或什么都没有。那么我该如何操作,文本将根据我点击的项目而改变。
例如,当我按下Rabbit项目时,我不想要关于猫和猫图片的文字。
这可能吗?我试过调用方法,但如果方法不在当前类中,我只得到一个FC。香港专业教育学院也尝试了额外的意图,但尝试没有进展顺利。
谢谢你! 你的朋友; D答案 0 :(得分:2)
如果我点击示例狗我的其他课程 我的其他layout.xml会弹出
我猜你已经实现了onListItemClick
protected void onListItemClick(ListView l, View v, int position, long id)
此方法有一个id
,您可以将其添加到意图中,以便发送到下一个活动,以了解哪个行(以及哪个项目)已被点击。
因此,在下一个活动中,您会获得正确的layout.xml
和信息,具体取决于收到的id
。
修改的
我们说MyFirstActivity
是您的列表活动:
public class MyFirstActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[] {"Hello","World","Foo","Bar"}));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Intent intent = new Intent(this,MySecondActivity.class);
intent.putExtra("id",id);
startActivity(intent);
}
}
然后,在onListItemClick
中,它向MySecondActivity
发送一个意图id
作为额外的地方我可以检索它并根据它获取信息
public class MySecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Long lngId = getIntent().getExtras().getLong("id");
Integer id = lngId.intValue();
String message = null;
switch(id) {
case 0:
message = "Hello";
break;
case 1:
message = "World";
break;
case 2:
message = "Foo";
break;
case 3:
message = "Bar";
break;
}
Toast.makeText(this,message + " was clicked",Toast.LENGTH_SHORT).show();
}
}
希望这有帮助