Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 打开或关闭开关时修改Listview适配器行_Android_Listview_Switch Statement_Android Arrayadapter_Oncheckedchanged - Fatal编程技术网

Android 打开或关闭开关时修改Listview适配器行

Android 打开或关闭开关时修改Listview适配器行,android,listview,switch-statement,android-arrayadapter,oncheckedchanged,Android,Listview,Switch Statement,Android Arrayadapter,Oncheckedchanged,我有列表视图,行为文本视图和开关 现在,当我单击第一项开关时,即当我打开开关时(位置==0),我希望 然后,当我第一次关闭时,下面所有可见的行都将被删除,所有行都将消失。 我怎样才能做到这一点。。? 默认情况下,android中的开关处于关闭状态,这意味着第一次只应显示一行,当我打开该开关时,所有剩余行将添加到第一行下方,反之亦然。 我使用了以下代码: 公共类MainActivity扩展活动 { 列表视图列表视图; 私有静态最终字符串[]项= {“允许计费详细信息捕获”、“地址1”、“地址2

我有
列表视图
,行为
文本视图
开关

现在,当我单击第一项
开关时,即当我打开
开关时(位置==0),我希望
然后,当我第一次关闭时,下面所有可见的行都将被删除,所有行都将消失。
我怎样才能做到这一点。。?
默认情况下,android中的
开关
处于关闭状态,这意味着第一次只应显示一行,当我打开该
开关
时,所有剩余行将添加到第一行下方,反之亦然。
我使用了以下代码:

公共类MainActivity扩展活动
{
列表视图列表视图;
私有静态最终字符串[]项=
{“允许计费详细信息捕获”、“地址1”、“地址2”、“城市”、“州”、“邮政编码”,
“国家”、“电子邮件”、“电话”};
静态int-i;
相对论;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
最终ArrayList数据=新的ArrayList(Arrays.asList(items));
最终测试适配器=新测试适配器(此,R.layout.fieldlist,数据);
listView=(listView)findViewById(R.id.listView1);
setAdapter(适配器);
}
私有无效填充列表()
{ArrayList currentdata=新的ArrayList();
ArrayList数据=新的ArrayList(Arrays.asList(items));

对于(int i=1;i我认为您实际需要的是类似于可扩展列表视图或类似于手风琴的视图

是否可以在简单的阵列中适应可见或不可见的行。。?
public class MainActivity extends Activity   
 {
     ListView listView;
     private static final String[] items=
      { "Allow Billing Details Capture", "Address1", "Address2", "City", "State", "Zip",
          "Country", "Email","Phone" };
 static int i;
RelativeLayout Rlmain;
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview);  
    final ArrayList<String> data=new ArrayList<String>(Arrays.asList(items));
    final TestAdapter adapter=new TestAdapter(this,R.layout.fieldlist,data);
     listView=(ListView)findViewById(R.id.listView1);
    listView.setAdapter(adapter);

}
private void FillList()
{   ArrayList<String> currentdata=new ArrayList<String>();
    ArrayList<String> data=new ArrayList<String>(Arrays.asList(items));
    for(int i=1;i<data.size();i++)
    {
        currentdata.add(data.get(i));
    }
    TestAdapter adapter=new TestAdapter(this,R.layout.fieldlist,currentdata);
    listView.setAdapter(adapter);
    adapter.notifyDataSetChanged();
}
private void fillone() 
{
    ArrayList<String> currentdata=new ArrayList<String>();
    ArrayList<String> data=new ArrayList<String>(Arrays.asList(items));
    currentdata.add(data.get(0));
    TestAdapter adapter=new TestAdapter(this,R.layout.fieldlist,currentdata);
    listView.setAdapter(adapter);
    adapter.notifyDataSetChanged();
}
public class TestAdapter extends ArrayAdapter<String> {
    Context con;
    ArrayList<String> listdata;

    public TestAdapter(Context context, int textViewResourceId,ArrayList<String> myitem) 
    {
        super(context, textViewResourceId, myitem);
        this.con = context;
        this.listdata = myitem;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) 
    {
        LayoutInflater inflater = (LayoutInflater) con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            //final View v=convertView;     
        if (convertView == null) 
        {
            convertView = inflater.inflate(R.layout.fieldlist, null);
        }
        TextView data = (TextView) convertView.findViewById(R.id.VTItemTextView);
        Switch check=(Switch)convertView.findViewById(R.id.Vtcheck);
        if(position==0 && check.isChecked())
        {
            FillList();
            notifyDataSetChanged();
        }
        else
        {
            fillone();
            notifyDataSetChanged();
        }
        check.setOnCheckedChangeListener(new OnCheckedChangeListener() 
        {               
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
            {       
                if(isChecked && position==0 )
                {                       
                    FillList();
                    notifyDataSetChanged();                 
                }
                else 
                {
                    fillone();
                    notifyDataSetChanged();
                }

            }
        });
        data.setText(listdata.get(position));
        return convertView;
    }
}
  }