![](/img/trans.png)
[英]Filtered ListView onItemClick returns Item at original position
[英]Set the original position of item in filtered ListView in Android
當我在過濾的ListView
選擇項目時,我想獲得原始位置。 這是我的簡單代碼。
我的問題是在過濾列表視圖中設置舊位置而不是新位置:
public class MainActivity extends AppCompatActivity {
EditText sr;
ListView lv_sr;
String[] titre;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sr = (EditText) findViewById(R.id.sr);
lv_sr = (ListView) findViewById(R.id.lv_sr);
titre = getResources().getStringArray(R.array.titre);
adapter = new ArrayAdapter<String>(this, R.layout.row_itme, R.id.row_text, titre);
lv_sr.setAdapter(adapter);
initEvent();
}
private void initEvent() {
sr.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
MainActivity.this.adapter.getFilter().filter(s);
}
@Override
public void afterTextChanged(Editable s) {
}
});
lv_sr.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent km = new Intent(MainActivity.this, Webhtml.class);
km.putExtra("page",position); -------- this is my problem
startActivity(km);
}
});
}
}
當您過濾ListView時,每個過濾的View位置也會根據過濾的視圖數量進行更改。 因此,如果要獲取適配器上的OnItemClickListener的原始位置(上一個位置或過濾之前的位置)。 你再也無法做到這一點。
您可以創建一個隱藏字段以保留原始位置。
String itemName = (String) parent.getItemAtPosition(position);
int position_fo_item = Arrays.asList(titre).indexOf(itemName);
Intent km = new Intent(MainActivity.this, Webhtml.class);
km.putExtra("page",position_fo_item);
startActivity(km);
如果不起作用,則將另一個數組創建為“ titre_original”,並將其分配為“ titre”。 然后用它來獲得像
String[] titre_original;
titre_original = getResources().getStringArray(R.array.titre);
int position_fo_item = Arrays.asList(titre_original).indexOf(itemName);
它肯定會工作...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.