0

我正在开发一个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);

          }
        });
    }
}
4

1 回答 1

0

我在这里看不到你的问题,你有几个可能性:

  1. 您可以使用switch. 在案例 0 中,您跳到纽约,在案例 1 中,您跳到伦敦等。

    开关(位置){

    case 0:
    //call intent NewYork
    break;
    case 1:
    ... 
    

    }

  2. 如果您有大量列表项,这可能会将您的代码转换为意大利面条。在这种情况下,我将创建一个 ArrayList,其中的城市以合适的顺序包含在其中。因此,如果位置 0 将您定向到 NewYorkListItem.class,则将此字符串写入 ArrayList 的第 0 个位置等。您可以轻松地调用一个类,例如: Class.forName("com.example."+mArrayList.get(position) + "ListItem");mArrayList 中的第 0 个位置包含“NewYork”。

  3. 如果您不使用 activites,那么 Fragment 解决方案是我认为的另一种好方法。但是这样你必须通过添加片段,FragmentTransaction因为你只能用事务替换你动态添加的片段。

希望这可以帮助!

于 2013-04-27T12:32:20.467 回答