listview with switch不起作用

时间:2013-10-08 16:48:22

标签: android listview

我有一个包含listview的活动。 (它使用自定义适配器,比如说adap1)

我也有一个开关,

 <Switch
        android:id="@+id/mySwitch"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="on/off" />

初始化如下:

Switch switch1; //global
switch1 = (Switch) findViewById(R.id.mySwitch); //inside onCreate()
if (switch1 != null) 
{
    switch1.setOnCheckedChangeListener(this);
}
else
{
    Log.i(tag, "switch1 is null");
}

,点击后,列表视图会更改(新的视图会使用另一个自定义适配器,具有不同的布局和视图,比如说Adap2)。 Adap2有一个复选框作为行中的一个视图。

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
      if(isChecked)
      {
            adapter1 = new Adap1 (this, al);
            lv.setAdapter(adapter1);        
      }
      else
      {     
            adapter2 = new Adap2 (this, al);
            lv.setAdapter(adapter2);
      }
}

然后我在onCreate();

中调用它
lv.setOnItemClickListener(new OnItemClickListener()
        {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id)
            {
                if(switch1.isChecked())
                {               
                    Log.i(tag, "Switch is checked");
                }
                  else
                      {             
                        Log.i(tag, "Switch is not checked");
                      }

但是,“切换已检查”永远不会显示。

是不是因为我使用了两个不同的自定义适配器,每个适配器都有不同的XML,而且代码不知道我使用的是哪个View?

0 个答案:

没有答案