Java Android列表视图到另一个详细信息视图

Java Android列表视图到另一个详细信息视图,java,android,string,listview,Java,Android,String,Listview,我正在开发一个android应用程序。。。第一页有一个列表视图,其中有不同的城市名称。。我知道当用户单击单个列表项时,它将转到一个页面并显示内容。。但我需要的是,当用户点击列表视图中的每一项时,它必须转到不同的页面。。城市详情页。。。如果有10个列表项存在..当用户单击每个列表项时。。。不同的页面必须出现。。。例如,纽约、伦敦、悉尼等不同的城市。。当用户按下伦敦按钮时,它必须转到伦敦页面描述 public class SingleListItem extends Activity{ @O

我正在开发一个android应用程序。。。第一页有一个列表视图,其中有不同的城市名称。。我知道当用户单击单个列表项时,它将转到一个页面并显示内容。。但我需要的是,当用户点击列表视图中的每一项时,它必须转到不同的页面。。城市详情页。。。如果有10个列表项存在..当用户单击每个列表项时。。。不同的页面必须出现。。。例如,纽约、伦敦、悉尼等不同的城市。。当用户按下伦敦按钮时,它必须转到伦敦页面描述

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);

          }
        });
    }
}
public类AndroidListViewActivity扩展了ListActivity{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
String[]adobe\u products=getResources().getStringArray(R.array.adobe\u products);
this.setListAdapter(新的ArrayAdapter(this,R.layout.list_项,R.id.label,adobe_产品));
ListView lv=getListView();
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
字符串产品=((TextView)视图).getText().toString();
Intent i=newintent(getApplicationContext(),SingleListItem.class);
i、 putExtra(“产品”,产品);
星触觉(i);
}
});
}
}

我看不出您的问题,您有几种可能:

  • 您可以使用
    开关
    根据您的位置确定您的新意图。在案例0中,你跳到纽约,在案例1中,你跳到伦敦等等

    开关(位置){

    }

  • 如果你有大量的列表项,这可能会把你的代码变成一个意大利面条。在本例中,我将创建一个ArrayList,其中cities按适当的顺序对其进行编码。因此,如果位置0指向NewYorkListItem.class,则将此字符串写入ArrayList的第0个位置,以此类推。。您可以轻松调用以下类:
    Class.forName(“com.example.”+mArrayList.get(position)+“ListItem”)您的结婚名单中的第0个位置包含“纽约”

  • 如果你不使用activites,我认为片段解决方案是另一个不错的方法。但这种方式必须通过
    FragmentTransaction
    添加片段,因为您只能用事务替换动态添加的片段


  • 希望这有帮助

    那么,这里有什么问题?
    case 0:
    //call intent NewYork
    break;
    case 1:
    ...