所以我有一个问题,我有一个名为testes的数组,它有一些位置,我使用这些位置来获取我点击的包裹的ID。但是当我使用搜索时,那些位置变化不能存储它们原来的位置吗?这是代码:
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);
}
}
我想在搜索之前存储他们所处的位置。
答案 0 :(得分:0)
您正在使用临时搜索列表修改列表视图。
因此您的原始列表不会被修改。因此,每当您在搜索后单击该行时,获取所选行中的文本并搜索&#34; testes&#34;中的文本索引。名单。这将为您提供实际列表视图中文本的位置。
每当使用数组适配器时,Android的默认布局用于填充列表视图中的每一行。请使用以下代码获取项目点击方法的文本。
TextView textView =(TextView)view.findViewById(R.id.list_content); String text = textView.getText()。toString();