无法创建多选列表视图

时间:2014-05-30 05:06:06

标签: android listview listactivity

这是我的代码我无法创建多选模式listview。 数据由jason提取并在listview中设置。 我想在列表视图中选择多种选择模式

public class ExamView extends ListActivity{

private ProgressDialog pDialog;
Intent activity;
// URL to get contacts JSON

// JSON Node names
private static final String TAG_USERMST = "products";
private static final String TAG_QID = "que_id";
private static final String TAG_QUE = "question";
private static final String TAG_QANS = "ans";
JSONArray products = null;

// Hashmap for ListView
ArrayList<HashMap<String, String>> contactList;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.user_activity_lv);

contactList = new ArrayList<HashMap<String, String>>();

ListView lv = getListView();
    new GetContacts().execute();
}
private class GetContacts extends AsyncTask<Void, Void, Void> {

@Override
protected void onPreExecute() {
    super.onPreExecute();
    // Showing progress dialog
    pDialog = new ProgressDialog(ExamView.this);
    pDialog.setMessage("Exam Paper is downloading...");
    pDialog.setCancelable(false);
    pDialog.show();

}
@Override
protected Void doInBackground(Void... arg0) {
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();

// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);

Log.d("Response: ", "> " + jsonStr);

if (jsonStr != null) {

try {
        JSONObject jsonObj = new JSONObject(jsonStr);

        // Getting JSON Array node
        products = jsonObj.getJSONArray(TAG_USERMST);

        // looping through All Contacts
        for (int i = 0; i < products.length(); i++) {
            JSONObject c = products.getJSONObject(i);

            String queid = c.getString(TAG_QID);
            String que = c.getString(TAG_QUE);
            String queans = c.getString(TAG_QANS);

            // tmp hashmap for single contact
            HashMap<String, String> product = new HashMap<String, String>();

            // adding each child node to HashMap key => value
            product.put(TAG_QID,queid);
            product.put(TAG_QUE, que);
            product.put(TAG_QANS, queans);


            // adding contact to contact list
            contactList.add(product);
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

    } else {
        Log.e("ServiceHandler", "Couldn't get any data from the url");
    }

    return null;
}


@Override
protected void onPostExecute(Void result) {
    super.onPostExecute(result);
    // Dismiss the progress dialog
    if (pDialog.isShowing())
        pDialog.dismiss();
    /**
     * Updating parsed JSON data into ListView
     * */
    ListAdapter adapter = new SimpleAdapter(
            ExamView.this, contactList,
            R.layout.user_list_item_lbl, new String[] { TAG_QID, TAG_QUE,
                    TAG_QANS }, new int[] { R.id.name,
                    R.id.email, R.id.mobile });

    setListAdapter(adapter);
}
}

1 个答案:

答案 0 :(得分:0)

 getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
 setListAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_multiple_choice, array_sort));

使用此代码为我工作。 这里array_sort是一个arraylist,即所有要显示的项目的列表。 可以使用此选择多个项目。