2010-03-19 2 views
1

안녕하세요. 제 코드에 문제가 있습니다. 이유를 모르겠습니다. 내 프로그램에 2 개의 스피너 상자와 1 개의 텍스트 뷰가 있습니다. 둘 다 스피너에서 뭔가를 선택하면 getrate 내부 클래스 에서 메서드를 호출하여 어떤 값을 textview로 반환해야합니다. 내 java 앱에서 작동하는 getrate 클래스이지만 Android 앱에서는 작동하지 않습니다.안드로이드의 내부 클래스에서 가치를 얻으려는 문제

여기 내 코드

public class BTS extends Activity { 
/** Called when the activity is first created. */ 
int i=0; 
int j=0; 
String[] li={"1","2","3"}; 
getrate gr; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


final Spinner combo = (Spinner)findViewById(R.id.widget30); 
final Spinner combo2 = (Spinner)findViewById(R.id.widget32); 
final TextView rate = (TextView) findViewById(R.id.widget31); 


    ArrayAdapter<String> a = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, li); 
    ArrayAdapter<String> b = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, li); 
     combo.setAdapter(a); 
     combo2.setAdapter(b); 
     combo.setOnItemSelectedListener(new OnItemSelectedListener() { 

    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, 
    int arg2, long arg3) { 
    // TODO Auto-generated method stub 
    i = (int) combo.getSelectedItemId(); 
    if(i==0||j==0){rate.setText("กรุณาเลือกสถานีต้นทางและปลายทาง");} 
    else {rate.setText("ราคาค่าโดยสาร : "+gr.get(i, j)+" บาท");} 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 

    } 


    }); 


     combo2.setOnItemSelectedListener(new OnItemSelectedListener() { 

    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, 
    int arg2, long arg3) { 
    // TODO Auto-generated method stub 
    j = (int) combo2.getSelectedItemId(); 
    if(i==0||j==0){rate.setText("กรุณาเลือกสถานีต้นทางและปลายทาง");} 
    else {rate.setText("ราคาค่าโดยสาร : "+gr.get(i, j)+" บาท");} 
    } 

    @Override 



    public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 

    } 
    }); 
    } 
} 




class getrate { 

private String[][] list; 
int c2=0; 
String[] ct={"1","2","3"}; 
getrate(){ 

} 

public String get(int i,int j){ 
    return ct[i]; 
} 

} 

시입니다. 내 영어에 대한 SRY; D

답변

1

나는 그 것이다 당신이 먼저 초기화 후 BTS.this.gr

를 사용하여 참조 할 것 같아요 :

public void onCreate(Bundle savedInstanceState) { 

this.gr=new getrate(); 
... 

// in your anonymous class 
else {rate.setText("ราคาค่าโดยสาร : "+BTS.this.gr.get(i, j)+" บาท");} 

} 
관련 문제