Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中设置项目在过滤列表视图中的原始位置_Android_Listview - Fatal编程技术网

在Android中设置项目在过滤列表视图中的原始位置

在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

我希望在筛选的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时,每个过滤视图的位置也会根据过滤视图的数量进行更改。所以,如果您想在适配器上获取原始位置前一个位置或过滤表单前的位置,请单击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的字符串数组适配器。你可以做一件事,从数组中获取位置。