我正在开发一个Android应用程序......第一页有一个列表视图,其中有不同的城市名称..我知道当用户点击单个列表项时,它将转到页面并显示内容..但是我需要的是当用户点击列表视图中的每个单项时..必须转到不同的页面...城市的详细页面...如果有10个列表项,那么..当用户点击每个列表项时...不同的页面必须来...例如纽约,伦敦,sydeny等等不同的城市...当用户按下伦敦按钮时...它必须去伦敦页面描述
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);
}
}
当用户按下单个列表时,它将转到其产品页面...
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);
}
});
}
}
答案 0 :(得分:0)
我在这里看不到你的问题,你有几个可能性:
您可以使用switch
在您的位置上识别新的意图。在案例0中,你跳到纽约,在案例1中,你跳到伦敦等。
开关(位置){
case 0:
//call intent NewYork
break;
case 1:
...
}
如果您有大量的列表项,这可能会将您的代码转换为意大利面条。在这种情况下,我将创建一个ArrayList,其中城市以合适的顺序提供它。因此,如果位置0将您引导到NewYorkListItem.class,则将此String写入ArrayList等的第0个位置。您可以轻松地调用类,如:
Class.forName("com.example."+mArrayList.get(position) + "ListItem");
,其中mArrayList中的第0个位置包含“NewYork”。
如果您不使用活动,片段解决方案是我认为的另一种好方法。但是这种方式你必须通过FragmentTransaction
添加片段,因为你只能用事务替换你动态添加的片段。
希望这有帮助!