Я искал решение и не могу найти его здесь.та же деятельность другой listview
В настоящее время я пытаюсь достичь, когда я нажимаю на пункт меню. Я хочу начать одно и то же действие с тем же меню, но с разными данными списка. Данные взяты из SQLITE.
Что я сделал, когда я выбираю и выбираю (onoptionsitemselected) Я передаю несколько аргументов, чтобы узнать, какие данные извлекаются из базы данных, но он просто работает с первым вариантом, другие не работают.
Это код моей деятельности я думаю, что я использую неправильно в Intents
public class PlantillaChina extends ActionBarActivity{
// DB Class to perform DB related operations
DBController controller = new DBController(this);
// Progress Dialog Object
ProgressDialog prgDialog;
HashMap<String, String> queryValues;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.lista);
Intent myIntent = getIntent();
Intent myIntent2 = getIntent();
Intent myIntent3 = getIntent();
Intent myIntent4 = getIntent();
String value = myIntent.getStringExtra("entremeses");
String value2 = myIntent2.getStringExtra("arroces");
String value3 = myIntent3.getStringExtra("mar");
String value4 = myIntent4.getStringExtra("carnes");
// Get plato records from SQLite DB
ArrayList<HashMap<String, String>> platoList = new ArrayList<HashMap<String, String>>();
if (value.equals("entremeses")){
platoList = controller.getAllEntremeses();
}else if(value2.equals("arroces")){
platoList = controller.getAllArrocesyPasta();
}else if(value3.equals("mar")){
platoList = controller.getAllMar();
}else if(value4.equals("carnes")){
platoList = controller.getAllCarnes();
}
// If plato exists in SQLite DB
if (platoList.size() != 0) {
// Set the plato Array list in ListView
ListAdapter adapter = new SimpleAdapter(PlantillaChina.this, platoList, R.layout.itemlista, new String[] {
"platoNombre", "platoDescripcion", "platoPrecio" }, new int[] { R.id.nombre, R.id.descripcion, R.id.precio });
ListView myList = (ListView) findViewById(R.id.listaplatos);
myList.setAdapter(adapter);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.china, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
// int id = item.getItemId();
// if (id == R.id.action_settings) {
// return true;
switch (item.getItemId()){
case R.id.entremeses:
Intent myIntent=new Intent(this,PlantillaChina.class);
myIntent.putExtra("entremeses", "entremeses");
this.startActivity(myIntent);
break;
case R.id.arrocesypasta:
Intent myIntent2=new Intent(this,PlantillaChina.class);
myIntent2.putExtra("arroces", "arroces");
this.startActivity(myIntent2);
break;
case R.id.pescados:
Intent myIntent3=new Intent(this,PlantillaChina.class);
myIntent3.putExtra("mar", "mar");
this.startActivity(myIntent3);
break;
case R.id.carnes:
Intent myIntent4=new Intent(this,PlantillaChina.class);
myIntent4.putExtra("carnes", "carnes");
this.startActivity(myIntent4);
break;
}
return super.onOptionsItemSelected(item);
}
}
Спасибо и наилучшие пожелания
привет у вас есть возможность для видимости на и off.Just вы кладете же как ListView в таком же положении и первый видимостью время ушел второй lv.when второй раз вам нужен другой, который вы видимую второй один первый один ушел, просто и лучшая идея: – Saveen
использовать метод notifydatasetchanged() вместо того, чтобы называть такую же активность более одного раза. передайте соответствующий аргумент вашим данным адаптера и просто обновите свой список в onOptionsItemSelected, вместо того, чтобы называть такую же активность. – mcd
выполните точно так же, как @mcd сказал, это ваше решение – Elltz