当前位置:编程学习 > wap >>

如何获取多选ListView中选中的选中项,请高手赐教~

import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class ShowPeopleList extends ListActivity {
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Cursor c=getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        startManagingCursor(c);
        
        ListAdapter adapter=new SimpleCursorAdapter(this, 
         android.R.layout.simple_list_item_multiple_choice,
         c, new String[]{ContactsContract.Contacts.DISPLAY_NAME,ContactsContract.Contacts.HAS_PHONE_NUMBER},
         new int[]{android.R.id.text1,android.R.id.text2});
        setListAdapter(adapter);
        
        final ListView listView = getListView();

        listView.setItemsCanFocus(false);
        listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    }

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode==KeyEvent.KEYCODE_BACK&&event.getRepeatCount()==0)
{
event.startTracking();
return true;


}
return super.onKeyDown(keyCode, event);
}

@Override
public boolean onKeyUp(int keyCode,KeyEvent event)
{
if(keyCode==KeyEvent.KEYCODE_BACK && event.isTracking()&&!event.isCanceled())
{
Intent intent=new Intent();
intent.setClass(ShowPeopleList.this, SMSManager.class);
Bundle b=new Bundle();
b.putString("txt", "a");
intent.putExtras(b);
setResult(RESULT_OK, intent);
finish();

return true;
}

return super.onKeyUp(keyCode, event);
}
}
小弟写了一段显示所有联系人的代码,但是不知道如何在onKeyUp事件中获取ListView中选中的联系人的信息,请高手帮帮忙 --------------------编程问答-------------------- listView.setOnItemClickListener(new OnItemClickListener() {

  public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

//view对象 就是你所选的那一栏,下面获取里面的子控件。当然个人还是自己写XML定义一个//ListView,便于处理.
view.findViewById(android.R.id.text1);//应该是TextView类型的
view.findViewById(android.R.id.text2);//应该是TextView类型的

}
}); --------------------编程问答--------------------
private ArrayList<String> lists;
ListView listView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        lists=new ArrayList<String>();
        Cursor c=getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        startManagingCursor(c);
        if(c!=null){
         c.moveToFirst();
         do{
         lists.add(c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));
         }while(c.moveToNext());
        }
        ListAdapter adapter=new SimpleCursorAdapter(this,  
        android.R.layout.simple_list_item_multiple_choice,
        c, new String[]{ContactsContract.Contacts.DISPLAY_NAME,ContactsContract.Contacts.HAS_PHONE_NUMBER},
        new int[]{android.R.id.text1,android.R.id.text2});
        setListAdapter(adapter);
        listView = getListView();
        listView.setItemsCanFocus(false);
        listView.setOnItemClickListener(this);
        listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    }

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
SparseBooleanArray a = listView.getCheckedItemPositions();
for(int i = 0; i < lists.size() ; i++)
        {
            if (a.valueAt(i))
            {
                Long val = listView.getAdapter().getItemId(a.keyAt(i));
                Toast.makeText(ShowPeopleList.this, "index="+val.toString()+lists.get(i), Toast.LENGTH_SHORT).show();
            }
        }

}
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,