2014-02-14 64 views
0

我想按鈕單擊時獲取數組上的下一個項目。Android如何使用按鈕單擊獲得下一個項目

陣列是這樣的:

String[] pickupLinesItems = { "a", "b", "c" }; 

然後,我有本作的微調

public void onItemSelected(org.holoeverywhere.widget.AdapterView<?> parent, 
     View view, int position, long id) { 

    position = spinner.getSelectedItemPosition(); 

    SpinnerAdapter adap = spinner.getAdapter(); 

    if (adap.equals(pickupLinesAdapter)) { 
     switch (position) { 
     case 0: 
      stopPlaying(); 
      speakMedia = MediaPlayer.create(this, R.raw.a); 
      break; 
     case 1: 
      stopPlaying(); 
      speakMedia = MediaPlayer.create(this, R.raw.b); 
      break; 
     case 2: 
      stopPlaying(); 
      speakMedia = MediaPlayer.create(this, R.raw.c); 
      break; 

     } 
    } 
} 

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    int index = 0; 

    switch (v.getId()) { 
    case R.id.next: 
     // here i want to go on the next item on array 
     break; 
    case R.id.back: 
        // here i wanna go back one item on the array 
     break; 
    } 
} 

如何將我這樣做,我已經竭盡所能,並不能似乎得到它。我試圖做一個if語句,但沒有。

+0

所以,像,如果微調是B,你需要按下一個按鈕將其更改爲C嗎? –

+1

使用一個int值,只是遞增和遞減 –

+0

@EmbattledSwag是 – user3204203

回答

0

假設我的意見是正確的,你可以這樣做:

//in your onClick 
case R.id.next: 
    int current = spinner.getSelectedItemPosition(); 
    spinner.setSelection(current++); 
    break; 

你可以做同樣的事情在後面。此外,請確保檢查邊界條件(如果您在c上,請確保您轉到a,而不是嘗試觸及數組的邊界)。

+0

我會說當前++%3,或者他應該檢查IndexOutOfBoundException – Blackbelt

+0

我以前試過,它沒有工作,然後仍然沒有,說實話我不知道爲什麼。它不會給我一個恐懼或任何它只是不移動到下一個。 – user3204203

2

需要一個變量來保存在與 相同的作用域聲明的pickupLinesItems的當前索引String [] pickupLinesItems = {「a」,「b」,「c」};

例如:

int pickupLinesItemIndex = 0; 

然後,你可以做這樣的事情:

public void onClick(View v) { 
    // TODO Auto-generated method stub 

    switch (v.getId()) { 
    case R.id.next: 
     if(pickupLinesItemIndex < pickupLinesItems.length) 
     { 
      String pickupLine = pickupLinesItemIndex[++pickupLinesItemIndex]; 
     } 
     break; 
    case R.id.back: 
     if(pickupLinesItemIndex > 0) 
     { 
      String pickupLine = pickupLinesItemIndex[--pickupLinesItemIndex]; 
     } 
     break; 
    } 
} 
+0

我確定你的意思是'++ pickupLinesItemIndex'和'--pickupLinesItemIndex',你必須檢查'pickupLineItemIndex'沒有變得大於數組的大小或者小於零 –

+0

正確,謝謝指出。 – user3311655

+0

+1,您也可以輸入支票密碼, –

相關問題