程序是这样,两个按钮,按相应的按钮,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;
        }
}
   
 
}

解决方案 »

  1.   

    注意:两个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();
           }
      

  2.   

     int arg2,
           long arg3 不是一个东西
      

  3.   

      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[]去掉,都用全局变量就可以了
      

  4.   

    用全局变量来记录position就不会这么乱了