2011-09-03 33 views
0

所以基本上我想這個列表視圖被混洗,所以它總是隨機的。但是每個人都需要打開自己的活動,無論它在列表視圖中的位置是什麼(所以我非常確定我不能使用位置)。所以我嘗試使用(TextView)視圖).getText( ),它不像它在吐司裏那樣讀取它。有任何想法嗎?從混洗列表視圖中打開活動

public class Bands extends ListActivity{ 
int numBands; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 



    final ArrayList<String> bands = new ArrayList<String>(); 
    bands.add(new String("Band0")); 
    bands.add(new String("Band1")); 
    bands.add(new String("Band2")); 

    Collections.shuffle(bands); 

    setListAdapter(new ArrayAdapter<String>(this, R.layout.item_list, bands)); 

    ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 

    lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) { 
     // When clicked, show a toast with the TextView text 
     Toast.makeText(getApplicationContext(), ((TextView) view).getText(), 
      Toast.LENGTH_SHORT).show(); 
     if(((TextView) view).getText() == "Band0"){ 
      Intent i = new Intent(Bands.this, Audio.class); 
      i.putExtra("Band", 0); 
      startActivity(i); 
     } 

    } 

    }); 
} 

}

任何人都知道的方式讀取洗牌創建編號順序?如果有人知道如何,可能是一種方法。感謝和任何幫助表示讚賞。

回答

2

如何使這一變化:

String text = ((TextView) view).getText(); 
if (text.equals("Band0") { 
... 
+0

謝謝你的作品。 – steven

+0

不客氣,很高興幫助! –

1

如果我收到了你的問題的權利,你需要每次列表視圖是隨機填充。在您的getView(),您可以設置從列表中選擇字符串添加此

getView

之外
int remember = 0; 
int[] rememberArray = new int[arraylist.size()-1]; //to store indexes that already has been drawn 

getView()內部:

Random gen= new Random() 
    int randomPosition = gen.nextInt(arraylist.size()-1); 
    rememberArray[remember]=randomPosition; 
    remember++; 
    for(int i =0; i <= rememberArray.length;i++){ 
    if(!remember==rememberArray[i]) 
    { 
    arraylist.get(randomPosition); 

    } else { //generate again, probably you can create method for this, and apply recursion 

    } 
    } //proceed with the rest of the getView() 

這不是測試,我只是給你的想法。

+0

非常感謝。 – steven