2013-04-27 148 views
0

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

      } 
     }); 
    } 
} 
+0

那么,这里有什么问题? – TomTasche 2013-04-27 11:12:04

回答

0

我不明白你的问题就在这里,你有几个possibilites:

  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添加片段,因为您只能用事务动态添加片段。

希望这有助于!

相关问题