Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.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 将所选行的内容传递给其他活动_Android_Listview_Checkbox_Textview_Custom Adapter - Fatal编程技术网

Android 将所选行的内容传递给其他活动

Android 将所选行的内容传递给其他活动,android,listview,checkbox,textview,custom-adapter,Android,Listview,Checkbox,Textview,Custom Adapter,有人能告诉我如何将自定义视图列表中选定行的值传递给android中的其他活动吗。我的意思是,我有一个自定义的ListView,它有两个textView和一个复选框。当用户选中复选框并点击提交按钮时,我想存储两个textView字段的值,并将其传递给下一个活动。传递给活动不是问题。问题是我不知道如何存储选中行的值。 代码粘贴在下面 import java.util.ArrayList; import java.util.List; import android.app.Activity; imp

有人能告诉我如何将自定义视图列表中选定行的值传递给android中的其他活动吗。我的意思是,我有一个自定义的ListView,它有两个textView和一个复选框。当用户选中复选框并点击提交按钮时,我想存储两个textView字段的值,并将其传递给下一个活动。传递给活动不是问题。问题是我不知道如何存储选中行的值。 代码粘贴在下面

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class contacts extends Activity implements OnItemClickListener {
    static final String TAG = "contacts";
    ArrayList<String> contactName = new ArrayList<String>();
    ArrayList<String> contactNumber = new ArrayList<String>();
    ArrayList<String> checkboxArray = new ArrayList<String>();
    MyAdapter myAdapter;
    Button AddNumber;
    String numberIntent;
    View vi;
    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listview);

        getAllContacts(this.getContentResolver());
        listView = (ListView) findViewById(R.id.lists);
        myAdapter = new MyAdapter();
        listView.setAdapter(myAdapter);
        listView.setOnItemClickListener(this);
        listView.setItemsCanFocus(false);
        listView.setTextFilterEnabled(true);
        // adding
        AddNumber = (Button) findViewById(R.id.AddNumbers);
        AddNumber.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                StringBuilder checkedContacts = new StringBuilder();
                Log.d(TAG, "onClick" + myAdapter.mCheckStates.size());
                for (int i = 0; i < contactName.size(); i++)

                {
                    if (myAdapter.mCheckStates.get(i) == true) {
                        checkedContacts.append(contactName.get(i).toString());
                        checkedContacts.append("\n");

                    } else {
                        Log.d(TAG, "No OnClick" + contactName.get(i).toString());
                    }

                }

                Toast.makeText(contacts.this, checkedContacts,
                        Toast.LENGTH_LONG).show();

                SparseBooleanArray checked = listView.getCheckedItemPositions();

            }
        });

    }

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        myAdapter.toggle(arg2);
    }

    public void getAllContacts(ContentResolver cr) {

        Cursor cursor = cr.query(
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,
                null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
                        + " COLLATE LOCALIZED ASC");
        while (cursor.moveToNext()) {
            String name = cursor
                    .getString(cursor
                            .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            String phoneNumber = cursor
                    .getString(cursor
                            .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            Log.d(TAG, "getAllContacts" + phoneNumber);
            contactName.add(name);
            contactNumber.add(phoneNumber);

        }

        cursor.close();
        Intent in = new Intent(this, TrackLogic.class);
        in.putExtra("contact", contactName.toArray());

        in.putExtra("contact1", contactNumber.toArray());
    }

    class MyAdapter extends BaseAdapter implements
            CompoundButton.OnCheckedChangeListener {
        private SparseBooleanArray mCheckStates;
        LayoutInflater mInflater;
        TextView phoneView, contactView;
        CheckBox checkBox;

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

        @Override
        public int getCount() {
            return contactName.size();
        }

        @Override
        public Object getItem(int position) {
            return position;
        }

        @Override
        public long getItemId(int position) {

            return 0;
        }

        @Override
        public View getView(final int position, View convertView,
                ViewGroup parent) {
            vi = convertView;
            if (convertView == null)
                vi = mInflater.inflate(R.layout.row, null);
            contactView = (TextView) vi.findViewById(R.id.contact_name);
            phoneView = (TextView) vi.findViewById(R.id.phone_number);
            checkBox = (CheckBox) vi.findViewById(R.id.checkBox_id);
            contactView.setText(contactName.get(position));
            phoneView.setText(contactNumber.get(position));
            checkBox.setTag(position);
            checkBox.setChecked(mCheckStates.get(position, false));
            checkBox.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);
            Log.d(TAG, "setChecked");
            notifyDataSetChanged();
        }

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

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {

            mCheckStates.put((Integer) buttonView.getTag(), isChecked);
        }
    }
}
import java.util.ArrayList;
导入java.util.List;
导入android.app.Activity;
导入android.content.ContentResolver;
导入android.content.Context;
导入android.content.Intent;
导入android.database.Cursor;
导入android.os.Bundle;
导入android.provider.contacts合同;
导入android.util.Log;
导入android.util.SparseBooleanArray;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.BaseAdapter;
导入android.widget.Button;
导入android.widget.CheckBox;
导入android.widget.CompoundButton;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
public类contacts扩展活动实现了mclicklinklistener{
静态最终字符串标记=“联系人”;
ArrayList contactName=新建ArrayList();
ArrayList contactNumber=新建ArrayList();
ArrayList checkboxArray=新的ArrayList();
我的适配器我的适配器;
按钮编号;
字符串编号;
视图六;
列表视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
getAllContacts(this.getContentResolver());
listView=(listView)findViewById(R.id.lists);
myAdapter=新的myAdapter();
setAdapter(myAdapter);
setOnItemClickListener(this);
setItemsCanFocus(false);
setTextFilterEnabled(true);
//添加
AddNumber=(按钮)findViewById(R.id.AddNumber);
AddNumber.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
StringBuilder checkedContacts=新建StringBuilder();
Log.d(标记“onClick”+myAdapter.mCheckStates.size());
对于(int i=0;i//in caller activity (save shared prefs value) ...
String phone = phoneView.getText().toString();

private SharedPreferences prefs;
prefs = getSharedPreferences("yourPrefName", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("phone", phone);  
editor.commit();


//in called activity ...
private SharedPreferences prefs;
prefs = getSharedPreferences("yourPrefName", Context.MODE_PRIVATE);
String phone=prefs.getString("phone", null);    //will be null if "phone" not found