ListView无法获取相应的值,求助
程序是这样,两个按钮,按相应的按钮,listview显示相应的信息,通过单击item弹出对应的值。但是现在的情况是:点击“省信息中心”还是弹出“省局领导”。大家帮我看看代码如下:
public class MainActivity extends Activity implements OnCheckedChangeListener {
String condition;
ListView lw;
LinearLayout mainLinearLayout;
String[] feets=new String[]{
"省局领导",
"省局办公室",
"省局人事处",
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jiguan);
mainLinearLayout = (LinearLayout)findViewById(R.id.list_jiguan);
lw = new ListView(this);
lw = (ListView)findViewById(R.id.lv_jiguan);
lw.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,feets));
lw.setOnItemClickListener(new OnItemClickListener() {//详细信息
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
condition=feets[arg2];
new AlertDialog.Builder(MainActivity.this)
.setTitle("关于")
.setMessage(condition) .show();
}
});
//切换按钮
SegmentedRadioGroup group = (SegmentedRadioGroup) findViewById(R.id.segment_text);
group.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
//按下第一个按钮,和默认显示一样
case R.id.button_one:
String[] feets=new String[]{
"省局领导",
"省局办公室",
"省局人事处"
};
lw.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,feets));
break;
//按下第二个按钮,更换单位
case R.id.button_two:
feets=new String[]{
"省信息中心",
"省销售",
"省后勤"
};
lw.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,feets));
break;
default:
break;
}
}
} --------------------编程问答-------------------- 注意:两个feets不是同一个变量
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
condition=feets[arg2]; //和onCheckedChanged中的不是同一个
new AlertDialog.Builder(MainActivity.this)
.setTitle("关于")
.setMessage(condition) .show();
} --------------------编程问答-------------------- int arg2,
long arg3 不是一个东西 --------------------编程问答-------------------- 你的listView变过来没有 --------------------编程问答-------------------- switch (checkedId) {
//按下第一个按钮,和默认显示一样
case R.id.button_one:
String[] feets=new String[]{
"省局领导",
"省局办公室",
"省局人事处"
};
lw.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,feets));
break;
//按下第二个按钮,更换单位
case R.id.button_two:
feets=new String[]{
"省信息中心",
"省销售",
"省后勤"
};
lw.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,feets));
break;
default:
break;
}
case R.id.button_two: 里的feets用的是 case R.id.button_one: 里面的对象而不是全局变量
你把1里面的String[]去掉,都用全局变量就可以了 --------------------编程问答-------------------- 用全局变量来记录position就不会这么乱了 --------------------编程问答-------------------- 楼上正解,此feets非彼feets
补充:移动开发 , Android