最初のアクティビティで、ユーザーが1から7または8までのいくつかのチェックボックスをマークできるアプリケーションを実行しようとしています(最終バージョンによって異なります)。ユーザーがオプションをマークして「検索」ボタンをクリックすると、マークされたアイテムに応じてさまざまなオブジェクトを示すリストを表示したいと思います。
私のオブジェクトはカスタム オブジェクト「グラウンド」です。文字列や int-boolean (1 または 0) などの多くの特性がデータベース sqlite に格納されています。私の主なアクティビティでは、多くの if else を使用してチェックボックスがいくつチェックされているかを知り、この情報をエクストラを介してインテントに入れ、2 番目のアクティビティ (リスト) でこのエクストラを取得し、別の if else を実行して知るアプリが表示する必要があるリスト。両方のアクティビティで多くの if else を実行する必要があるため、この方法は非常に初歩的だと思います。最初のアクティビティでリストを返す dbquery を作成し、このリストを意図的に送信しようとしましたが、多くのチュートリアルに従い、常に正しい数のオブジェクトのリストを持っていますが、常に同じ上書きされたオブジェクトです!
何をすべきかのアイデアはありますか?
前もって感謝します!
最初の活動
public class MainActivity extends Activity {
Button bafegeix, bcerca, bneteja;
ListView llista;
RadioGroup grup;
RadioButton casa, terreny;
CheckBox cbaigua, cblavabos, cbcobert, cbdutxes, cbcuina, cbadap;
protected Activity activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_prova__db);
bcerca = (Button) findViewById (R.id.cerca);
bneteja = (Button) findViewById (R.id.neteja);
grup = (RadioGroup)findViewById (R.id.grup);
casa = (RadioButton)findViewById (R.id.casa);
terreny = (RadioButton)findViewById (R.id.terreny);
cbaigua = (CheckBox)findViewById (R.id.aigua);
cblavabos = (CheckBox)findViewById (R.id.lavabos);
cbcobert = (CheckBox)findViewById (R.id.cobert);
cbdutxes = (CheckBox)findViewById (R.id.dutxes);
cbcuina = (CheckBox)findViewById (R.id.cuina);
cbadap = (CheckBox)findViewById (R.id.adaptada);
bcerca.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(terreny.isChecked()){
Intent iterreny = new Intent(getApplicationContext(), LlistaTerrenys.class);
iterreny.putExtra("aigua", "aigua");
iterreny.putExtra("lavabos", "lavabos");
iterreny.putExtra("cobert", "cobert");
iterreny.putExtra("dutxes", "dutxes");
startActivity(iterreny);
}else if (cbaigua.isChecked()&& cblavabos.isChecked()&&cbcobert.isChecked()&&cbdutxes.isChecked()) {
Intent iterreny = new Intent(getApplicationContext(), LlistaTerrenys.class);
iterreny.putExtra("aigua", "aigua");
iterreny.putExtra("lavabos", "lavabos");
iterreny.putExtra("cobert","cobert");
iterreny.putExtra("dutxes", "dutxes");
startActivity(iterreny);
} else if(cbaigua.isChecked()&&cblavabos.isChecked()&&cbcobert.isChecked()){
Intent iterreny = new Intent(getApplicationContext(), LlistaTerrenys.class);
iterreny.putExtra("aigua", "aigua");
iterreny.putExtra("lavabos", "lavabos");
iterreny.putExtra("cobert","cobert");
startActivity(iterreny);
}else if(cblavabos.isChecked()&&cbcobert.isChecked()&&cbdutxes.isChecked()){
Intent iterreny2 = new Intent(getApplicationContext(), LlistaTerrenys.class);
iterreny.putExtra("lavabos", "lavabos");
iterreny.putExtra("cobert", "cobert");
iterreny.putExtra("dutxes", "dutxes");
startActivity(iterreny);
}else if(cbaigua.isChecked()&&cbcobert.isChecked()&&cbdutxes.isChecked()){
Intent iterreny2 = new Intent(getApplicationContext(), LlistaTerrenys.class);
iterreny.putExtra("aigua", "aigua");
iterreny.putExtra("cobert", "cobert");
iterreny.putExtra("dutxes", "dutxes");
startActivity(iterreny);
}else if(cbaigua.isChecked()&&cblavabos.isChecked()&&cbdutxes.isChecked()){
Intent iterreny2 = new Intent(getApplicationContext(), LlistaTerrenys.class);
iterreny.putExtra("aigua", "aigua");
iterreny.putExtra("lavabos", "lavabos");
iterreny.putExtra("dutxes", "dutxes");
startActivity(iterreny);
}else if (cbaigua.isChecked()&&cblavabos.isChecked()){
Intent iterreny2 = new Intent(getApplicationContext(), LlistaTerrenys.class);
iterreny.putExtra("aigua", "aigua");
iterreny.putExtra("lavabos", "lavabos");
startActivity(iterreny);
第二の活動
public class LlistaTerrenys extends Activity {
ListView llista;
TextView numelements;
ArrayList<Terreny>list;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_list_contactos);
llista = (ListView)findViewById(R.id.listView1);
numelements = (TextView)findViewById(R.id.numelements);
Bundle extras = getIntent().getExtras();
String aigua = extras.getString("aigua");
String lavabos = extras.getString("lavabos");
String cobert = extras.getString("cobert");
String dutxes = extras.getString("dutxes");
String seleccio = extras.getString("noseleccio");
if (aigua!=null && lavabos!=null && cobert!=null && dutxes!=null) {
final UtilidadesSQL mydb = new UtilidadesSQL(getApplicationContext());
mydb.getAllDataTerrenyTotesCaracteristiques();
AdapterTerreny aa = new AdapterTerreny(this, mydb.getAllDataTerrenyTotesCaracteristiques());
llista.setAdapter(aa);
} else if(aigua!=null && lavabos!=null && cobert!=null){
final UtilidadesSQL mydb = new UtilidadesSQL(getApplicationContext());
AdapterTerreny aa = new AdapterTerreny(this, mydb.getAllDataTerrenyAiguaLavabosCobert());
llista.setAdapter(aa);
}else if(lavabos!=null && cobert!=null && dutxes!=null){
final UtilidadesSQL mydb = new UtilidadesSQL(getApplicationContext());
AdapterTerreny aa = new AdapterTerreny(this, mydb.getAllDataTerrenyLavabosCobertDutxes());
llista.setAdapter(aa);
}else if(aigua!=null && cobert!=null && dutxes!=null){
final UtilidadesSQL mydb = new UtilidadesSQL(getApplicationContext());
AdapterTerreny aa = new AdapterTerreny(this, mydb.getAllDataTerrenyAiguaCobertDutxes());
llista.setAdapter(aa);
}else if(aigua!=null && lavabos!=null && dutxes!=null){
final UtilidadesSQL mydb = new UtilidadesSQL(getApplicationContext());
AdapterTerreny aa = new AdapterTerreny(this, mydb.getAllDataTerrenyAiguaLavabosDutxes());
llista.setAdapter(aa);
}else if (aigua!=null && lavabos!=null ){
final UtilidadesSQL mydb = new UtilidadesSQL(getApplicationContext());
AdapterTerreny aa = new AdapterTerreny(this, mydb.getAllDataTerrenyAiguaLavabos());
llista.setAdapter(aa);
SQL からデータを取得するさまざまな方法
public Cursor getAllDataTerrenyAigua () {
SQLiteDatabase db = getReadableDatabase();
String buildSQL = ("select * from terrenys where aigua = ?");
return db.rawQuery(buildSQL, new String[]{"1"});
}
public Cursor getAllDataTerrenyLavabos () {
SQLiteDatabase db = getReadableDatabase();
String buildSQL = ("select * from terrenys where lavabos = ?");
return db.rawQuery(buildSQL, new String[]{"1"});
}
public Cursor getAllDataTerrenyCobert () {
SQLiteDatabase db = getReadableDatabase();
String buildSQL = ("select * from terrenys where cobert = ?");
return db.rawQuery(buildSQL, new String[]{"1"});
}
public Cursor getAllDataTerrenyDutxes () {
SQLiteDatabase db = getReadableDatabase();
String buildSQL = ("select * from terrenys where dutxes = ?");
return db.rawQuery(buildSQL, new String[]{"1"});
}
public Cursor getAllDataTerrenyTotesCaracteristiques () {
SQLiteDatabase db = getReadableDatabase();
String buildSQL = ("select * from terrenys where aigua=? AND cobert=? AND dutxes=? AND lavabos=?");
return db.rawQuery(buildSQL, new String[]{"1","1","1","1"});
}