Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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_Android Listview - Fatal编程技术网

Android-一次添加多个项目后ListView侦听器不工作

Android-一次添加多个项目后ListView侦听器不工作,android,listview,android-listview,Android,Listview,Android Listview,当一次仅向listView添加1项时,我的listView工作正常。但当添加多个项时,listview中的侦听器不是wokring。谁能告诉我我做错了什么?谢谢 以下是我的listView代码: public class Participant extends ListFragment implements OnClickListener{ Intent intent; TextView friendId; Button addparticipant; String eventId; List

当一次仅向listView添加1项时,我的listView工作正常。但当添加多个项时,listview中的侦听器不是wokring。谁能告诉我我做错了什么?谢谢

以下是我的listView代码:

public class Participant extends ListFragment implements OnClickListener{

Intent intent;
TextView friendId;
Button addparticipant;
String eventId;
ListView lv;

public void onActivityCreated(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);
    EventController controller = new EventController(getActivity());

    HashMap<String, String> queryValues = new HashMap<String, String>();
    Intent objIntent = getActivity().getIntent();
    eventId = objIntent.getStringExtra("eventId");
    queryValues.put("eventId", eventId);
    ArrayList<HashMap<String, String>> friendList = controller
            .getAllFriends(queryValues);
    if (friendList.size() != 0) {
        lv = getListView();
        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                friendId = (TextView) view.findViewById(R.id.friendId);
                String valFriendId = friendId.getText().toString();
                Intent objIndent = new Intent(getActivity(),
                        EventPage.class);
                objIndent.putExtra("friendId", valFriendId);
                startActivity(objIndent);
            }
        });
        lv.setOnItemLongClickListener(new OnItemLongClickListener(){

            @Override
            public boolean onItemLongClick(AdapterView<?> arg0,
                    View arg1, int arg2, long arg3) {
                // TODO Auto-generated method stub
                friendId = (TextView) arg1.findViewById(R.id.friendId);
                registerForContextMenu(getListView());
                return false;
            }

        });
        SimpleAdapter adapter = new SimpleAdapter(getActivity(),
                friendList, R.layout.view_friend_entry, new String[] {
                        "friendId", "friendName", "friendSpending" },
                new int[] { R.id.friendId, R.id.friendName,
                        R.id.friendSpending });
        adapter.notifyDataSetChanged();
        setListAdapter(adapter);
    }
}

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.participant, container, false);
    addparticipant = (Button) rootView.findViewById(R.id.addpart);
    addparticipant.setOnClickListener(this);
    return rootView;

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent objIntent = new Intent(getActivity(),
            AddParticipant.class);
    objIntent.putExtra("eventId", eventId);
    startActivity(objIntent);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    String[] menuItems = getResources().getStringArray(R.array.menu);
    for (int i = 0; i < menuItems.length; i++) {
        menu.add(Menu.NONE, i, i, menuItems[i]);
    }
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    int menuItemIndex = item.getItemId();
    EventController controller = new EventController(getActivity());
    switch (menuItemIndex) {
    case 0:
        String valFriendId = friendId.getText().toString();
        Intent objIndent = new Intent(getActivity(),
                EditParticipant.class);
        objIndent.putExtra("friendId", valFriendId);
        startActivity(objIndent);
        break;
    case 1:
        String valFriendId2 = friendId.getText().toString();
        controller.deleteFriend(valFriendId2);
        Intent broadcastIntent = new Intent();
        broadcastIntent.setAction(UpdateReceiver.NEW_UPDATE_BROADCAST);
        broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT);
        getActivity().sendBroadcast(broadcastIntent);
        onResume();
    }

    return true;
}

@Override
public void onResume() {
    super.onResume();

    if (getListView() != null) {
        updateData();
    }
}

private void updateData() {
    EventController controller = new EventController(getActivity());
    HashMap<String, String> queryValues = new HashMap<String, String>();
    Intent objIntent = getActivity().getIntent();
    eventId = objIntent.getStringExtra("eventId");
    queryValues.put("eventId", eventId);
    SimpleAdapter adapter = new SimpleAdapter(getActivity(),
            controller.getAllFriends(queryValues),
            R.layout.view_friend_entry, new String[] { "friendId",
                    "friendName", "friendSpending" }, new int[] {
                    R.id.friendId, R.id.friendName, R.id.friendSpending });
    setListAdapter(adapter);
}
公共类参与者扩展ListFragment实现OnClickListener{
意图;
TextView friendId;
按钮添加参与者;
字符串eventId;
ListView lv;
已创建ActivityState上的公共无效(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onActivityCreated(savedInstanceState);
EventController=新的EventController(getActivity());
HashMap queryValues=新HashMap();
Intent objIntent=getActivity().getIntent();
eventId=objIntent.getStringExtra(“eventId”);
queryValues.put(“eventId”,eventId);
ArrayList friendList=控制器
.getAllFriends(查询值);
如果(friendList.size()!=0){
lv=getListView();
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
friendId=(TextView)view.findViewById(R.id.friendId);
字符串valFriendId=friendId.getText().toString();
意向对象=新意向(getActivity(),
EventPage.class);
objIndent.putExtra(“friendId”,valFriendId);
星形触觉(明显);
}
});
lv.setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
长单击(AdapterView arg0,
视图arg1、整数arg2、长arg3){
//TODO自动生成的方法存根
friendId=(TextView)arg1.findViewById(R.id.friendId);
registerForContextMenu(getListView());
返回false;
}
});
SimpleAdapter=新的SimpleAdapter(getActivity(),
friendList,R.layout.view\u friend\u条目,新字符串[]{
“friendId”、“friendName”、“FriendExpanding”},
新int[]{R.id.friendId,R.id.friendName,
R.id.R});
adapter.notifyDataSetChanged();
setListAdapter(适配器);
}
}
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.participant,container,false);
addparticipant=(按钮)rootView.findViewById(R.id.addpart);
addparticipant.setOnClickListener(此);
返回rootView;
}
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
Intent objIntent=新的Intent(getActivity(),
AddParticipant.class);
objIntent.putExtra(“eventId”,eventId);
星形触觉;
}
@凌驾
public void onCreateContextMenu(ContextMenu,视图v,
上下文菜单信息(menuInfo){
字符串[]menuItems=getResources().getStringArray(R.array.menu);
对于(int i=0;i
在这里,我将项目添加到listView:

public class AddParticipant extends Activity implements OnClickListener {

private static final int REQUEST_CODE_PICK_CONTACTS = 1;
private static final String TAG = AddParticipant.class.getSimpleName();
private Uri uriContact;
private String contactID;
EditText friendName;
EditText friendNumber;
EditText friendEmail;
EventController controller = new EventController(this);
Button btnadd;
Button addcontact;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.addparticipant);
    friendName = (EditText) findViewById(R.id.friendName);
    friendNumber = (EditText) findViewById(R.id.friendNumber);
    friendEmail = (EditText) findViewById(R.id.friendEmail);
    btnadd = (Button) findViewById(R.id.saveButton);
    btnadd.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            HashMap<String, String> queryValues = new HashMap<String, String>();
            Intent objIntent = getIntent();
            String eventId = objIntent.getStringExtra("eventId");
            queryValues.put("eventId", eventId);
            queryValues.put("friendName", friendName.getText().toString());
            queryValues.put("friendNumber", friendNumber.getText()
                    .toString());
            queryValues
                    .put("friendEmail", friendEmail.getText().toString());
            controller.insertFriend(queryValues);
            callHomeActivity(v);
            finish();
        }

    });
    addcontact = (Button) findViewById(R.id.fromcontact);
    addcontact.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    startActivityForResult(new Intent(Intent.ACTION_PICK,
            ContactsContract.Contacts.CONTENT_URI),
            REQUEST_CODE_PICK_CONTACTS);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == REQUEST_CODE_PICK_CONTACTS
            && resultCode == RESULT_OK) {
        Log.d(TAG, "Response: " + data.toString());
        uriContact = data.getData();

        retrieveContactName();
        retrieveContactNumber();
        retrieveContactEmail();

    }
}

private void retrieveContactNumber() {

    String contactNumber = null;

    // getting contacts ID
    Cursor cursorID = getContentResolver().query(uriContact,
            new String[] { ContactsContract.Contacts._ID }, null, null,
            null);

    if (cursorID.moveToFirst()) {

        contactID = cursorID.getString(cursorID
                .getColumnIndex(ContactsContract.Contacts._ID));
    }

    cursorID.close();

    Log.d(TAG, "Contact ID: " + contactID);

    // Using the contact ID now we will get contact phone number
    Cursor cursorPhone = getContentResolver().query(
            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
            new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER },

            ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ? AND "
                    + ContactsContract.CommonDataKinds.Phone.TYPE + " = "
                    + ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE,

            new String[] { contactID }, null);

    if (cursorPhone.moveToFirst()) {
        contactNumber = cursorPhone
                .getString(cursorPhone
                        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    }

    cursorPhone.close();

    Log.d(TAG, "Contact Phone Number: " + contactNumber);
    friendNumber.setText(contactNumber);
}

private void retrieveContactName() {

    String contactName = null;

    // querying contact data store
    Cursor cursor = getContentResolver().query(uriContact, null, null,
            null, null);

    if (cursor.moveToFirst()) {

        // DISPLAY_NAME = The display name for the contact.
        // HAS_PHONE_NUMBER = An indicator of whether this contact has at
        // least one phone number.

        contactName = cursor.getString(cursor
                .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
    }

    cursor.close();

    Log.d(TAG, "Contact Name: " + contactName);
    friendName.setText(contactName);

}

private void retrieveContactEmail() {
    ContentResolver contactResolver = this.getContentResolver();

    Cursor emailCursor = contactResolver.query(
            ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
            ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
            new String[] { contactID }, null);

    while (emailCursor.moveToNext()) {
        String phone = emailCursor
                .getString(emailCursor
                        .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
        int type = emailCursor
                .getInt(emailCursor
                        .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
        String s = (String) ContactsContract.CommonDataKinds.Email
                .getTypeLabel(this.getResources(), type, "");

        Log.d("TAG", s + " email: " + phone);
        friendEmail.setText(phone);
    }

    emailCursor.close();

}

public void callHomeActivity(View view) {
    super.onResume();
}
公共类AddParticipant扩展活动实现OnClickListener{
私有静态最终整数请求\代码\选择\联系人=1;
私有静态最终字符串标记=AddParticipant.class.getSimpleName();
私人联系;
私有字符串联系人ID;
编辑文本名称;
编辑文本编号;
编辑文本和电子邮件;
EventController=新的EventController(此);
按钮btnadd;
按钮触点;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.addparticipant);
friendName=(EditText)findViewById(R.id.friendName);
friendNumber=(EditText)findViewById(R.id.friendNumber);
friendEmail=(EditText)findViewById(R.id.friendEmail);
btnadd=(按钮)findviewbyd(R.id.saveButton);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
HashMap queryValues=新HashMap();
Intent objIntent=getIntent();
字符串事件ID=