xml未显示预先选中的复选框

时间:2014-04-10 05:55:10

标签: android xml checkbox

我创建了一个应用程序,其中,我想显示在xml的帮助下预先检查的复选框,之后用户可以选中或取消选中该复选框,但是xaml未在设备的应用程序启动时显示已检查,问题是什么。请指教。

MainActivity

public class File_Selecter extends Activity implements OnItemClickListener {
     EditText edDelimiter, edqualifier, edcolumn, edrow;
    ListView list;
    StringBuilder addition = new StringBuilder();
    ArrayList<String> list1 = new ArrayList<String>();
    ArrayList<String> list2 = new ArrayList<String>();
    ArrayList<String> list3 = new ArrayList<String>();
    ArrayList<String> phno0 = new ArrayList<String>();
    private Button btnsave;
    String str;
    int t;
    int count = 0;
    String[] BreakData, roz;
    TextView textnum;
    static String fileinfo;
    static StringBuilder conct = new StringBuilder();
    static int ResultCode = 12;
    String name = "", number = "";
    MyAdapter ma;
    String fin = "";
    String[] cellArray;
    String[] art = null;;
    String pathname = Environment.getExternalStorageDirectory()
            .getAbsolutePath();
    static String contacts = "";
static String mixer;
static String delimiter, qulifier;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_file);
        ActionBar actionBar = getActionBar();

        actionBar.setDisplayHomeAsUpEnabled(true);
        ColorDrawable colorDrawable = new ColorDrawable(
                Color.parseColor("#00aef0"));
        actionBar.setBackgroundDrawable(colorDrawable);
        Intent itadd = new Intent();
        // edittext name
        // final String name=itadd.getStringExtra("name").toString();
        textnum = (TextView) findViewById(R.id.textnum1);
        list = (ListView) findViewById(R.id.listview);
        ma = new MyAdapter();
        list.setAdapter(ma);
        // list.setOnItemClickListener(this);
        // list.setItemsCanFocus(false);
        // list.setTextFilterEnabled(true);
        edDelimiter = (EditText) findViewById(R.id.edDelimiter);
        edcolumn = (EditText) findViewById(R.id.edcoloumns);
        edrow = (EditText) findViewById(R.id.edrow);
        edqualifier = (EditText) findViewById(R.id.edqualifier);
        // edittext number
        // final String number=itadd.getStringExtra("number").toString();

        edDelimiter.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                edDelimiter.setError(null);
            }
        });
        if(fileinfo!=null){
        //Toast.makeText(getApplication(),
                //fileinfo.toString(), Toast.LENGTH_LONG)
                //.show();
        if (delimiter != null){
            edDelimiter.setText( SmsSend
                    .delim1.toString());

            qulifier= SmsSend
                    .qulifier.toString(); }
        ToRead(fileinfo);
        // contacts from smssend

        contacts = SmsSend.contacts1;

        if (SmsSend.contacts1 != null) {
            cellArray = contacts.split(";");
            if(list2.size() != 0){
            for (int i = 0; i < cellArray.length; i++) {

                for (int j = 0; j < list2.size(); j++) {
                    if (list2.get(j).contains(cellArray[i])) {
                        //ma.setChecked(j, true);

                        break;
                    }}}}
                else{
                    for (int i = 0; i < cellArray.length; i++) {

                        for (int j = 0; j < list1.size(); j++) {
                            if (list1.get(j).contains(cellArray[i])) {
                                //ma.setChecked(j, true);

                                break;  
                            }
                        }
                    }

        }
            }
        }
        // button1
        btnsave = (Button) findViewById(R.id.btnsave);
        btnsave.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if(edDelimiter.getText().toString().length()== 0){
                    edDelimiter.setError("Delimiter ir required");
                } 
                if(File_Explorer.fileSizeInMB <= 1){
                ToRead(fileinfo);
//finish();
                }else{
                    Toast.makeText(getApplication(), "file size is too large", Toast.LENGTH_LONG).show();
                }

            }
        });


    }

    public void ToRead(String fileinfo) {

        if (fileinfo != null) {
             delimiter = edDelimiter.getText().toString();
            // Toast.makeText(getApplication(), delimiter, Toast.LENGTH_LONG).show();
//delim=":";
             qulifier = edqualifier.getText().toString();
             //Toast.makeText(getApplication(), qulifier.toString(), Toast.LENGTH_LONG).show();
            // qulifier="\\";
            // finish();

             mixer = qulifier + delimiter;
            BreakData = fileinfo.split(mixer);

            str = edrow.getText().toString().trim();
            try {
                t = Integer.parseInt(str);
            } catch (NumberFormatException nfe) {
                // Handle parse error.
            }

            if (BreakData != null) {
                // String t2= (String.valueOf(t));
                if (File_Explorer.fileExtension.equals("vcf")) {

                    if (!(String.valueOf(t)).equals("0")) {

                        if (t > BreakData.length) {
                            Toast.makeText(getApplication(),
                                    "Data is less then entered rows",
                                    Toast.LENGTH_LONG).show();
                            Arrays.fill(BreakData, null);
                            Toast.makeText(getApplication(),
                                    "empty.................", Toast.LENGTH_LONG)
                                    .show();
                        } else {

                            for (int i = 0; i < BreakData.length; i++) {
                                if (BreakData[i].contains("FN")) {
                                    art = BreakData[i + 1].split("\n");

                                    name = art[0].toString();

                                } else if (BreakData[i].contains("TEL;CELL")) {
                                    roz = BreakData[i + 1].split("\n");
                                    number = roz[0].toString();
                                    fin = name.toString() + "\n" + "\n"
                                            + number.toString();

                                    list2.add(fin.toString());

                                }
                            }
                            for (int a = 0; a < list2.size() && a < t; a++) {
                                list1.add(list2.get(a).toString());

                            }

                        }
                        textnum.setText(Integer.toString(list1.size()));

                    }

                    else {

                        for (int i = 0; i < BreakData.length; i++) {
                            if (BreakData[i].contains("FN")) {
                                art = BreakData[i + 1].split("\n");

                                name = art[0].toString();

                            } else if (BreakData[i].contains("TEL;CELL")) {
                                roz = BreakData[i + 1].split("\n");
                                number = roz[0].toString();
                                fin = name.toString() + "\n" + "\n"
                                        + number.toString();

                                list1.add(fin.toString());

                            }

                        }
                        textnum.setText(Integer.toString(list1.size()));
                    }

                } else {

                    if (!(String.valueOf(t)).equals("0")) {
                        if (t > BreakData.length) {
                            Toast.makeText(getApplication(),
                                    "Data is less then entered rows",
                                    Toast.LENGTH_LONG).show();
                            Arrays.fill(BreakData, null);
                            Toast.makeText(getApplication(),
                                    "empty.................", Toast.LENGTH_LONG)
                                    .show();
                        } else {

                            for (int i = 0; i < BreakData.length && i < t; i++) {
                                list1.add(BreakData[i].toString());

                            }
                            textnum.setText(Integer.toString(t));
                        }
                    }

                    else {

                        for (int i = 0; i < BreakData.length; i++) {
                            list1.add(BreakData[i].toString());
                            //t = i;
                        }

                        textnum.setText(Integer.toString(BreakData.length));
                    }

                }
            }

        }

        list.setAdapter(ma);
        // fileinfo= null;
        //edDelimiter.setText(null);

    }

    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub

        StringBuilder checkedcontacts = new StringBuilder();
        System.out.println(".............." + ma.mCheckStates.size());
        for (int i = 0; i < list1.size(); i++)

        {
            if (ma.mCheckStates.get(i) == false) {
                // Toast.makeText(getApplication(), "hiii",
                // Toast.LENGTH_LONG).show();
                StringTokenizer st1 = new StringTokenizer(list1.get(i)
                        .toString(), "\n");
                String first = st1.nextToken();
                String second = st1.nextToken();
                phno0.add(second.toString());
                checkedcontacts.append(list1.get(i).toString());
                checkedcontacts.append("\n");

            } else {
                System.out.println("..Not Checked......"
                        + list1.get(i).toString());
            }

        }
//Toast.makeText(getApplication(), phno0.toString(), Toast.LENGTH_LONG).show();
        Intent returnIntent = new Intent();
        returnIntent.putStringArrayListExtra("extermal_name", phno0);
        setResult(RESULT_OK, returnIntent);

        finish();

    }

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        // TODO Auto-generated method stub
        ma.toggle(arg2);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // TODO Auto-generated method stub
        getMenuInflater().inflate(R.menu.add_button, menu);
        return true;

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub

        switch (item.getItemId()) {
        case R.id.attachments:
            fileinfo = null;    
                Intent i = new Intent(File_Selecter.this, File_Explorer.class);

                startActivityForResult(i, ResultCode);

            break;
        case android.R.id.home:
            // app icon in action bar clicked; go home
            StringBuilder checkedcontacts = new StringBuilder();
            System.out.println(".............." + ma.mCheckStates.size());
            for (int j = 0; j < list1.size(); j++)

            {
                if (ma.mCheckStates.get(j) == true) {
                    StringTokenizer st1 = new StringTokenizer(list1.get(j)
                            .toString(), "\n");
                    String first = st1.nextToken();
                    String second = st1.nextToken();
                    phno0.add(second.toString());
                    checkedcontacts.append(list1.get(j).toString());
                    checkedcontacts.append("\n");

                } else {
                    System.out.println("..Not Checked......"
                            + list1.get(j).toString());
                }

            }

            Intent returnIntent = new Intent();
            returnIntent.putStringArrayListExtra("extermal_name", phno0);
            setResult(RESULT_OK, returnIntent);

            finish();
            break;

        }
        return super.onOptionsItemSelected(item);
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == ResultCode) {

            if (resultCode == RESULT_OK) {
                fileinfo = data.getStringExtra("name");

            }

            // list.setAdapter(ma);
        }

        if (resultCode == RESULT_CANCELED) {

        }

    }

AdapterCLass

    class MyAdapter extends BaseAdapter implements
            CompoundButton.OnCheckedChangeListener {
        public SparseBooleanArray mCheckStates;
        LayoutInflater mInflater;
        TextView tv1, tv;
        CheckBox cb;

        MyAdapter() {
            mCheckStates = new SparseBooleanArray(list1.size());
            mInflater = (LayoutInflater) File_Selecter.this
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }

        // Save ListView state

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list1.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub

            return position;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub

            return 0;
        }

        @Override
        public View getView(final int position, View convertView,
                ViewGroup parent) {
            // TODO Auto-generated method stub
            View vi = convertView;
            if (convertView == null)
                vi = mInflater.inflate(R.layout.row, null);
            tv = (TextView) vi.findViewById(R.id.textView1);
            // tv1 = (TextView) vi.findViewById(R.id.textView2);
            cb = (CheckBox) vi.findViewById(R.id.checkBox1);
            tv.setText(list1.get(position));
            // tv1.setText(phno1.get(position));
            cb.setTag(position);

            //cb.setChecked(mCheckStates.get(position, true));
            cb.setOnCheckedChangeListener(this);

            return vi;

        }

        public boolean isChecked(int position) {

            return mCheckStates.get(position, false);
        }

        public void setChecked(int position, boolean isChecked) {
            mCheckStates.put(position, isChecked);
              notifyDataSetChanged();
        }

        public void toggle(int position) {
            setChecked(position, !isChecked(position));
        }

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {
            // TODO Auto-generated method stub
            mCheckStates.put((Integer) buttonView.getTag(), isChecked);

        }
    }

}

row.layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="15dp"
        android:ems="20"
        android:text="TextView"
        android:textColor="#0082e6" />



    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:checked="true"
        android:layout_marginBottom="5dp"
        android:layout_marginRight="22dp"
        android:layout_marginTop="5dp" />

</RelativeLayout>

0 个答案:

没有答案