Java Android中从内部类获取值的问题
嗨,我的代码有点问题,我不知道为什么 我的程序有两个微调器框和一个文本视图。 当我在两个微调器中选择某个对象时,它应该从getrate内部类调用方法 这将向textview返回一些值。 这个getrate类在我的java应用程序上工作,但在android应用程序上不工作 这是我的密码Java Android中从内部类获取值的问题,java,android,Java,Android,嗨,我的代码有点问题,我不知道为什么 我的程序有两个微调器框和一个文本视图。 当我在两个微调器中选择某个对象时,它应该从getrate内部类调用方法 这将向textview返回一些值。 这个getrate类在我的java应用程序上工作,但在android应用程序上不工作 这是我的密码 public class BTS extends Activity { /** Called when the activity is first created. */ int i=0; int j=0;
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];
}
}
公共类基站扩展活动{
/**在首次创建活动时调用*/
int i=0;
int j=0;
字符串[]li={“1”、“2”、“3”};
getrate gr;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
最终微调器组合=(微调器)findViewById(R.id.widget30);
最终微调器combo2=(微调器)findViewById(R.id.widget32);
最终文本视图速率=(文本视图)findViewById(R.id.widget31);
ArrayAdapter a=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,li);
ArrayAdapter b=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,li);
组合设置适配器(a);
组合2.设置适配器(b);
setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//TODO自动生成的方法存根
i=(int)combo.getSelectedItemId();
如果(i==0 | | j==0){rate.setText(“กรุณาเลือกสถานีต้นทางและปลายทาง");}
else{rate.setText(“ราคาค่าโดยสาร : “+gr.get(i,j)+”บาท");}
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
combo2.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//TODO自动生成的方法存根
j=(int)combo2.getSelectedItemId();
如果(i==0 | | j==0){rate.setText(“กรุณาเลือกสถานีต้นทางและปลายทาง");}
else{rate.setText(“ราคาค่าโดยสาร : “+gr.get(i,j)+”บาท");}
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
}
}
类获取率{
私有字符串[][]列表;
int c2=0;
字符串[]ct={“1”、“2”、“3”};
getrate(){
}
公共字符串get(int i,int j){
返回ct[i];
}
}
Ps.Sry为我的英语;D我想你必须先初始化,然后使用
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)+" บาท");}
}
我认为您必须先初始化,然后使用
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)+" บาท");}
}