开发者

Problem about getting value from inner class in Android

开发者 https://www.devze.com 2022-12-24 00:38 出处:网络
Hi I got something wrong in my code and I don\'t know why My program have 2 spinner box and 1 textview.

Hi I got something wrong in my code and I don't know why My program have 2 spinner box and 1 textview. when I choose something in both spinner it should call method from getrate inner class which return some value to textview. This getrate class working on my java app but it's don't working on android app.

here is my code

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];
 }

}

Ps. Sry for my english ;D


I think you have to initialise first, then refer to it by using BTS.this.gr

That would be:

public void onCreate(Bundle savedInstanceState) {

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

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

}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号