在Android中设置项目在过滤列表视图中的原始位置
我希望在筛选的ListView中选择项时获得原始位置。 这是我的简单代码 我的问题是在筛选列表视图中设置旧位置而不是新位置:在Android中设置项目在过滤列表视图中的原始位置,android,listview,Android,Listview,我希望在筛选的ListView中选择项时获得原始位置。 这是我的简单代码 我的问题是在筛选列表视图中设置旧位置而不是新位置: public class MainActivity extends AppCompatActivity { EditText sr; ListView lv_sr; String[] titre; ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle sa
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时,每个过滤视图的位置也会根据过滤视图的数量进行更改。所以,如果您想在适配器上获取原始位置前一个位置或过滤表单前的位置,请单击Listener。你再也得不到了 可以创建隐藏字段以在原始位置打孔
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);
它肯定会有用的 过滤ListView时,每个过滤视图的位置也会根据过滤视图的数量进行更改。所以,如果您想在适配器上获取原始位置前一个位置或过滤表单前的位置,请单击Listener。你再也得不到了 可以创建隐藏字段以在原始位置打孔
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);
它肯定会有用的 你能分享你的适配器吗?你能分享你的适配器吗?谢谢你的回答:/但我怎么能创造它!如果你有时间,你能分享你的适配器吗?你面临什么样的问题?有什么错误吗?或者工作很好,但给接线位置?不,我正在收集代码,我正在尝试建立这个项目,你说的适配器是什么意思?我想我使用的是android的字符串数组适配器。\u assety你可以做一件事,从数组中获取位置。谢谢你的回答:/但我如何才能创建它!如果你有时间,你能分享你的适配器吗?你面临什么样的问题?有什么错误吗?或者工作很好,但给接线位置?不,我正在收集代码,我正在尝试建立这个项目,你说的适配器是什么意思?我想我正在使用一个来自android的字符串数组适配器。你可以做一件事,从数组中获取位置。