当前位置:编程学习 > wap >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,