Also habe ich ein Problem, ich habe ein Array namens teses, das hat einige Positionen und ich benutze diese Positionen, um die ID des Pakets zu erhalten, das ich klicke. Aber wenn ich diese Positionen suche, kann ich nicht die Position speichern, die sie ursprünglich waren? Hier ist der Code:Liste speichernBeiträge anzeigen auf
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_list);
testList = (ListView) findViewById(R.id.testList);
ArrayAdapter<String> adapter = new Test_row_adapter(TestList.this,testes);
testList.setAdapter(adapter);
testList.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
int ID_WANTED=myDB.getAllIds().get(i);
Intent i2 = new Intent(TestList.this,TesteInfoDisplay.class);
String DateClickedDisciplina = myDB.getDisciplina(ID_WANTED);
String DateClickedSala = myDB.getSala(ID_WANTED);
String DateClickedDia = myDB.getDates(ID_WANTED);
String DateClickedHora = myDB.getHour(ID_WANTED);
i2.putExtra("dateID", ID_WANTED);
i2.putExtra("returnedData", DateClickedDia);
i2.putExtra("returnedHour", DateClickedHora);
i2.putExtra("returnedDisciplina", DateClickedDisciplina);
i2.putExtra("returnedSala", DateClickedSala);
startActivity(i2);
}
}
);
}
public static void RestartArray(){
DataBaseHelper myDB = CustomApplication.getDatabaseHelper();
for(int digg=1; contador2<=myDB.getHowMany(); contador2++) {
int ID_WANTED = myDB.getAllIds().get(contador2 - 1);
testes.add("Data: " + myDB.getDates(ID_WANTED) + " " + myDB.getHour(ID_WANTED) + "\n" + "Discilpina: " + myDB.getDisciplina(ID_WANTED));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu,menu);
MenuItem searchItem = menu.findItem(R.id.item_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(
new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
ArrayList<String> tempList = new ArrayList<>();
for(String temp : testes){
if(temp.toLowerCase().contains(newText.toLowerCase())){
tempList.add(temp);
}
ArrayAdapter<String> adapter = new Test_row_adapter(TestList.this,tempList);
testList.setAdapter(adapter);
}
return true;
}
}
);
return super.onCreateOptionsMenu(menu);
}
}
Ich möchte die Positionen speichern sie in waren, bevor die Suche gemacht wurde.
Also in Position sollte es die ursprüngliche Position sein? –
Leider habe ich Ihre Frage nicht erhalten. Sie müssen sich jedoch keine Gedanken über die Position des Textes in der Liste machen. Alles, was Sie tun müssen, ist nach der Suche, wenn Sie auf das Element in der Liste klicken, erhalten Sie den Text aus der Liste (ich habe bereits erwähnt, wie Sie den Text aus angeklickt Position in Listview) und suchen Sie die Position der Text in der aktuellen Liste "Hoden". Auf diese Weise können Sie wissen, was die Position des Textes in der tatsächlichen ListView ist. –