how to save multiple checkbox value to array list?
when button clicked, in the toast appear appear selected results, but when the array used to compare in query, the query doesn't work
here my code:
package com.sbima.gangguanlensa.diagnosis;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.sbima.gangguanlensa.DataGejala;
import com.sbima.gangguanlensa.R;
import com.sbima.gangguanlensa.db.DBHandler;
public class DiagnosisMain extends ListActivity {
public ListAdapter adapter;
String arrRule[][];
CheckBox CB;
private List<DataGejala> list = new ArrayList<DataGejala>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gejala_main);
DBHandler db = new DBHandler(this);
list = db.getdatagejala();
adapter = new MyAdapter(this);
setListAdapter(adapter);
}
private class MyAdapter extends BaseAdapter {
LayoutInflater inflater;
public MyAdapter(Context context) {
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int arg0) {
return arg0;
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final DataGejala dg = list.get(position);
convertView = inflater.inflate(R.layout.gejala_main_list, null);
TextView vIdGejala = (TextView) convertView
.findViewById(R.id.id_gejala);
TextView vNamaGejala = (TextView) convertView
.findViewById(R.id.nama_gejala);
final CheckBox vCheckBox = (CheckBox) convertView
.findViewById(R.id.check_box);
vIdGejala.setText(dg.getIdGejala());
vNamaGejala.setText(dg.getNamaGejala());
vCheckBox.setChecked(list.get(position).isCek());
vCheckBox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dg.setCek(vCheckBox.isChecked());
}
});
return convertView;
}
}
public void onButtonClicker(View v) {
Intent intent;
switch (v.getId()) {
case R.id.btn_cekhasildiagnosis:
intent = new Intent(this, HasilDiagnosis.class);
startActivity(intent);
clicksubmit();
break;
}
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.btn_cekhasildiagnosis:
clicksubmit();
break;
}
return true;
}
public void clicksubmit() {
ArrayList<String> lst = new ArrayList<String>();
lst.clear();
String arrId = "";
System.out.println("check"+getListView().getCheckedItemIds().length);;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).isCek()) {
arrId = arrId + list.get(i).getIdGejala() +",";
}
}
arrId = arrId.substring(0, arrId.length() - 1);
Intent intent = new Intent(this, HasilDiagnosis.class);
intent.putExtra("arrId", arrId);
startActivity(intent);
Toast.makeText(this, "checked : " + arrId, Toast.LENGTH_LONG).show();
}
public View getViewByPosition(int position, ListView listView) {
final int firstListItemPosition = listView.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition
+ listView.getChildCount() - 1;
if (position < firstListItemPosition || position > lastListItemPosition) {
return listView.getAdapter().getView(position,
listView.getChildAt(position), listView);
} else {
final int childIndex = position - firstListItemPosition;
return listView.getChildAt(childIndex);
}
}
}
and here my query:
public String[][] LihatHasil(String arrId){
try {
String arrData[][] = null;
SQLiteDatabase db = this.getWritableDatabase();
String strSQL = "SELECT p.*, COUNT( idRule ) as kejadian, "
+ "(SELECT COUNT( idRule ) kejadian FROM tbrule WHERE idGangguan=p.idGangguan) as peluang "
+ "FROM tbrule r JOIN tbgangguan p ON p.idGangguan = r.idGangguan "
+ "WHERE r.idGejala IN ("+ arrId +") "
+ "ORDER BY kejadian DESC LIMIT 3 "
+ "GROUP BY r.idPenyakit";
Cursor cursor = db.rawQuery(strSQL, null);
if (cursor.moveToFirst()) {
arrData = new String[cursor.getCount()][cursor.getColumnCount()];
int i= 0;
do {
arrData[i][0] = cursor.getString(0);
arrData[i][1] = cursor.getString(1);
arrData[i][2] = cursor.getString(2);
arrData[i][3] = cursor.getString(3);
arrData[i][4] = cursor.getString(4);
i++;
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return arrData;
} catch (Exception e) {
return null;
}
}
Aucun commentaire:
Enregistrer un commentaire