2012-11-28 189 views
0

我有一個android應用程序,我需要將一個變量(樂器)傳遞給它的主要活動。這看起來像一個簡單的問題,但它讓我感到困惑。我環顧四周,我已經注意到編寫getInstrument方法似乎是個好主意。這是我做過什麼至今:在java中將變量從一個類傳遞到另一個類

public class MainActivity extends Activity{ 
//I need to read the instrument variable here 
    public void addListenerOnSpinnerItemSelection(){ 

     instrumentSp = (Spinner) findViewById(R.id.instrument); 
     instrumentSp.setOnItemSelectedListener(new CustomOnItemSelectedListener()); 

    } 
} 

單獨的類(在單獨的文件):

public class CustomOnItemSelectedListener implements OnItemSelectedListener { 

private int instrument; 

    public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) { 
    Toast.makeText(parent.getContext(), 
     "Please wait a minute for the instrument to be changed. ", Toast.LENGTH_SHORT).show(); 
     //"Item : " + parent.getItemAtPosition(pos).toString() + " selected" + pos, 
     //Toast.LENGTH_SHORT).show(); 
    instrument = pos; 
    } 


    public int getInstrument(){ 
     return instrument; 
    } 

} 

但我不認爲我可以調用,在主活動getInstrument()方法,因爲該對象只存在於偵聽器中。必須有一個非常簡單的方法。我讀了一些帖子,但問題似乎是這個類的對象並不存在。感謝您的任何見解。

回答

1

你可以試試這個:

public class MainActivity extends Activity{ 
    //I need to read the instrument variable here 
    CustomOnItemSelectedListener MyListener = new CustomOnItemSelectedListener(); 

    public void addListenerOnSpinnerItemSelection(){ 

    instrumentSp = (Spinner) findViewById(R.id.instrument); 
    instrumentSp.setOnItemSelectedListener(MyListener); 
    } 
} 
+0

謝謝,但我想外面使用getInstrument FO的addListenerOnSpinner功能。 – dorien

+0

看到我編輯的答案 – Abubakkar

+0

我實現了這一點,似乎有道理。但是在調用getInstrument(nullpoint)時出現錯誤。任何想法? – dorien

1

如果你有你的聽衆一個參考,你應該能夠調用它的方法,如:

CustomOnItemSelectedListener listener = new CustomOnItemSelectedListener(); 
instrumentSp.setOnItemSelectedListener(listener); 
.... 
int instrumentValue = listener.getInstrument(); 
0

創建的

CustomOnItemSelectedListener listener; 
int instrument; 
public void onCreate(Bundle b){ 
    listener = new CustomOnItemSelectedListener(); 
    instrument = listener.getInstrument(); 
} 

全局實例這將是在MainActivity類

相關問題