CDZ30
CDZ30

Reputation: 143

How do I convert an ordinary listview to a multi-select listview?

I have been having a problem lately, I have successfully created a listview in the FillList method that displays the items that i need. That is all well. The problem is how do I convert it to a multi-select checkbox like style so that when I select an item it will just be stored in an array for later use. Any insight is helpful.

Here is my PathfinderUpdate.java:

public class PathfinderUpdate extends Fragment {

ConnectionClass connectionClass;
EditText edtproname, edtprodesc;
Button btnadd,btnupdate,btndelete,btnrefresh;
ProgressBar pbbar;
ListView lstpro;
String pathid;


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


    View rootView = inflater.inflate(R.layout.update_pathfinder, container, false); 


    connectionClass = new ConnectionClass();
    btnupdate = (Button) rootView.findViewById(R.id.btnupdate);
    lstpro = (ListView) rootView.findViewById(R.id.lstproducts);
    btnrefresh = (Button) rootView.findViewById(R.id.btnrefresh);
    pathid = "";




    FillList fillList = new FillList();
    fillList.execute("");

    btnrefresh.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            FillList Fill = new FillList();
            Fill.execute("");

        }
    });


    return rootView;

}

@Override
public void onResume(){
    super.onResume();
    FillList Fill = new FillList();
    Fill.execute("");

}


public class FillList extends AsyncTask<String, String, String> {
    String z = "";

    List<Map<String, String>> prolist  = new ArrayList<Map<String, String>>();

    @Override
    protected void onPreExecute() {

        //old pbbar
    }

    @Override
    protected void onPostExecute(String r) {



        String[] from = { "pathfinder_id", "pathfinder_name"};
        int[] views = { R.id.lblproid, R.id.lblproname };
        final SimpleAdapter ADA = new SimpleAdapter(getActivity(),
                prolist, R.layout.lsttemplate, from,views);
        lstpro.setAdapter(ADA);
        lstpro.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,
                                    int arg2, long arg3) {
                @SuppressWarnings("unchecked")
                HashMap<String, Object> obj = (HashMap<String, Object>) ADA
                        .getItem(arg2);
                pathid = (String) obj.get("pathfinder_id");
                String idea_name = (String) obj.get("pathfinder_name");
                String benefit_eqv = (String) obj.get("pathfinder_eqv");
                String quickwin = (String) obj.get("pathfinder_quick");
                String observe = (String) obj.get("pathfinder_obs");
                String ideaId = (String) obj.get("pathfinder_idea_id");
                String BenefitId = (String) obj.get("pathfinder_benefit");
                String closure = (String) obj.get("pathfinder_closure");

                Integer ideaIdMain = Integer.parseInt(ideaId);
                Integer benefitIdMain = Integer.parseInt(BenefitId);
                Integer pathfinderId = Integer.parseInt(pathid);
                Double benefiteqv = Double.parseDouble(benefit_eqv);

                Bundle bundle = new Bundle();

                bundle.putString("id2", pathid);
                bundle.putString("name", idea_name);
                bundle.putDouble("eqv", benefiteqv);
                bundle.putString("quick", quickwin);
                bundle.putString("observation", observe);
                bundle.putInt("idea_id", ideaIdMain);
                bundle.putInt("benefit_id", benefitIdMain);
                bundle.putString("closure", closure);
                bundle.putInt("id", pathfinderId);

                Intent updateMain = new Intent(getActivity(), PathfinderUpdateMain.class);
                updateMain.putExtras(bundle);
                startActivity(updateMain);



           //     qty.setText(qtys);
            }
        });



    }

    @Override
    protected String doInBackground(String... params) {

        try {
            Connection con = connectionClass.CONN();
            if (con == null) {
                z = "Error in connection with SQL server";
            } else {
                String query = "select * from pathfinder ORDER BY pathfinder_id ASC";
                PreparedStatement ps = con.prepareStatement(query);
                ResultSet rs = ps.executeQuery();

                ArrayList<String> data1 = new ArrayList<String>();
                while (rs.next()) {
                    Map<String, String> datanum = new HashMap<String, String>();
                    datanum.put("pathfinder_id", rs.getString("pathfinder_id"));
                    datanum.put("pathfinder_name", rs.getString("pathfinder_name"));
                    datanum.put("pathfinder_status", rs.getString("pathfinder_status"));
                    datanum.put("pathfinder_eqv", rs.getString("pathfinder_potential_eqv"));
                    datanum.put("pathfinder_obs", rs.getString("pathfinder_observation"));
                    datanum.put("pathfinder_quick", rs.getString("pathfinder_quickwin"));
                    datanum.put("pathfinder_idea_id", rs.getString("idea_id"));
                    datanum.put("pathfinder_benefit", rs.getString("benefit_id"));
                    datanum.put("pathfinder_closure", rs.getString("pathfinder_target_closure"));

                    prolist.add(datanum);
                }


                z = "Success";
            }
        } catch (Exception ex) {
            z = "Error retrieving data from table";
            Log.e("MYAPP", "exception", ex);

        }
        return z;
    }
}


}

Upvotes: 0

Views: 51

Answers (2)

Kostas Drak
Kostas Drak

Reputation: 3260

Check this out i believe its much more close to the new design guidelines!!!

Upvotes: 1

Youxian
Youxian

Reputation: 133

You can create your own adapter and customise list item.

here is a tutorial about list view.

for your questions. chapter 15 might be what you have been looking for.

http://www.vogella.com/tutorials/AndroidListView/article.html#listview_selection

hope this help !!!

Upvotes: 0

Related Questions