Android的列表视图到另一个详细信息视图
问题描述:
我正在开发一个android应用程序...第一页有一个列表视图,其中不同的城市名称在那里..我知道当用户点击单个列表项目时,它将转到一个页面并显示内容..但我的需要是当用户在列表视图中单击每个项目时,它必须去不同的页面..城市的详细信息页面......如果有10个列表项目在那里..当用户点击每个列表项目...不同的页面必须来...例如不同的城市,如纽约,伦敦,sydeny等..当用户按伦敦按钮...它必须去伦敦页面描述Android的列表视图到另一个详细信息视图
public class SingleListItem extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.single_list_item_view);
TextView txtProduct = (TextView) findViewById(R.id.product_label);
Intent i = getIntent();
String product = i.getStringExtra("product");
txtProduct.setText(product);
}
}
在这个当用户在单个列表上按下它将转到它的产品p年龄...
public class AndroidListViewActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] adobe_products = getResources().getStringArray(R.array.adobe_products);
this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, adobe_products));
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String product = ((TextView) view).getText().toString();
Intent i = new Intent(getApplicationContext(), SingleListItem.class);
i.putExtra("product", product);
startActivity(i);
}
});
}
}
答
我不明白你的问题就在这里,你有几个possibilites:
-
您可以识别与使用
switch
你的位置你的新意图。在0的情况下,你跳转到纽约,在1的情况下,你跳伦敦等开关(位置){
case 0: //call intent NewYork break; case 1: ...
}
如果你有一大堆的列表项,这可能把你的代码转换成意大利面条。在这种情况下,我会创建一个ArrayList,并按照适当的顺序插入城市。因此,如果位置0将您指向NewYorkListItem.class,则将此字符串写入ArrayList的第0个位置等等。您可以轻松地调用类:
Class.forName("com.example."+mArrayList.get(position) + "ListItem");
其中,mArrayList中的第0个位置包含“NewYork”。如果你不使用activites,Fragment解决方案是我认为的另一个好方法。但是这样您必须通过
FragmentTransaction
添加片段,因为您只能用事务动态添加片段。
希望这有助于!
那么,这里有什么问题? – TomTasche 2013-04-27 11:12:04