2011-07-20 40 views
0

我目前有一個ListActivity,我正在尋找基於列表中的選擇開始一項新活動。基於意圖和附加,我該如何做到這一點?這是我到目前爲止的代碼:ListActivity Intents

package com.fragile.honbook; 

import android.app.ListActivity; 

import android.os.Bundle; 

import android.view.View; 

import android.widget.ArrayAdapter; 

import android.widget.ListView; 

import android.widget.TextView; 

public class GuideSelection extends ListActivity{ 

private TextView selection; 

private static final String[] heroes={ "Agility", "Intelligence", 
    "Strength"}; 

public void onCreate(Bundle icicle){ 

    super.onCreate(icicle); 

    setContentView(R.layout.heroselect); 

    setListAdapter(new ArrayAdapter<String>(this, 
      R.layout.row, R.id.label, 
      heroes)); 

    selection=(TextView)findViewById(R.id.select); 
} 
    public void onListItemClick(ListView parent, View v, 
           int position, long id){ 
    } 
} 

回答

1
public void onListItemClick(ListView parent, View v, position, long id){ 
    Intent intent = new Intent(GuideSelection.this, NewActivity.class); 
    intent.putExtra("hero", heroes[position]); 
    startActivity(intent); 
} 

更新(每個列表項不同的活動):

final Map<String, Class> activities = new HashMap<String, Class>(); 

{ 
    activities.put("agility", AgilityActivity.class); 
    activities.put("intelligence", IntelligenceActivity.class); 
    // add more here 
} 

public void onListItemClick(ListView parent, View v, position, long id){ 
    Intent intent = new Intent(GuideSelection.this, activities.get(heroes[position])); 
    intent.putExtra("hero", heroes[position]); 
    startActivity(intent); 
} 
+0

我這個唯一的問題是,如果我有多個活動,請問這種回暖不是「任何其他活動NewActivity」。 – Ulatec

+0

然後你必須在列表項目上做一個測試基礎,然後調用你需要的活動的意圖 – Rasel

+0

我已經改變了我的最佳投票到這個新的更新,謝謝先生:) – Ulatec

2

喜歡這個 如果你想打電話叫NewActivity活動點擊與發送數據作爲額外的列表項後,你可以做到這一點

public void onListItemClick(ListView parent, View v, 
            int position, long id){ 

    Intent intent = new Intent(GuidSelection.this, NewActivity.Class()); 
    intent.putExtra("DATA",heroes[position]); 
    GuideSelection.startActivity(intent); 
    } 
1
@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    if(position==1){ 
     //First item clicked. 
     Intent intent = new Intent(this,NewActivity.class); 
     startActivity(intent)); 
    } 
// handle else ifs 
} 

這只是一個想法。你可能希望即興發揮太多,如果elses。