Android 列表视图筛选器搜索

Android 列表视图筛选器搜索,android,arrays,string,filter,Android,Arrays,String,Filter,我想用editText筛选listView。 我的ListView由ArrayString填充,当我过滤它时,一切正常。但是我在识别单击的元素时遇到了一个问题。当我过滤listView并单击过滤的项目时,我希望获得原始arrayString中的行号,以便做出一个意图。Whit my code当我单击筛选数组字符串中的项目时,该行为0且不正确。如果我搜索“Anche Se Pesa”,我想返回第2行,就像原始数组中的位置一样 <string-array name="titoli">

我想用editText筛选listView。 我的ListView由ArrayString填充,当我过滤它时,一切正常。但是我在识别单击的元素时遇到了一个问题。当我过滤listView并单击过滤的项目时,我希望获得原始arrayString中的行号,以便做出一个意图。Whit my code当我单击筛选数组字符串中的项目时,该行为0且不正确。如果我搜索“Anche Se Pesa”,我想返回第2行,就像原始数组中的位置一样

<string-array name="titoli">
        <item>An Val Dondona</item>
        <item>Anche Mio Padre</item>
        <item>Anche Se Pesa</item>
        <item>Andremo In Francia</item>
        <item>Aprite Le Porte</item>
        <item>Arda Berghem</item>
        <item>Ascoltate Amici Cari</item>
        <item>Ave, O Vergine</item>
        <item>Aver na Figlia Sola Soletta</item>
        <item>Ancora sti quatro</item>
        <item>Andouma Prou</item>

    </string-array>

瓦尔多纳酒店
安奇·米奥·帕德雷
佩萨安奇酒店
弗朗西娅的安德烈莫
阿普里特勒波特酒店
阿尔达·伯格姆
爱之星酒店
奥弗金大街
太阳女神
安科拉四行
安杜马县
这是密码

public class activity_titoli extends AppCompatActivity {

    Button btt_backHome;
    ListView lV_titoli;
    EditText eT_search;
    private ArrayAdapter<CharSequence> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_titoli);

        btt_backHome = (Button) findViewById(R.id.btt_backHome);
        lV_titoli = (ListView) findViewById(R.id.lV_titoli);
        eT_search = (EditText) findViewById(R.id.eT_search);

        adapter = ArrayAdapter.createFromResource(this, R.array.titoli, android.R.layout.simple_list_item_1);
        lV_titoli.setAdapter(adapter);

        final Intent to_Home = new Intent (this , Activity_Main.class);

        eT_search.addTextChangedListener(new TextWatcher() {

            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1,
                                          int arg2, int arg3) {
                // TODO Auto-generated method stub
            }

            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2,
                                      int arg3) {
                (activity_titoli.this).adapter.getFilter().filter(arg0);
            }
        });

        btt_backHome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(to_Home);
            }
        });

        lV_titoli.setOnItemClickListener(new AdapterView.OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                Log.e("Element: " , Integer.toString(i));

            }
        });
    }
}
public class活动\u titoli扩展了appcompative活动{
按钮btt_返回主页;
ListView lV_titoli;
编辑文本搜索;
专用阵列适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_titoli);
btt_backHome=(按钮)findviewbyd(R.id.btt_backHome);
lV_titoli=(ListView)findViewById(R.id.lV_titoli);
eT_search=(EditText)findViewById(R.id.eT_search);
adapter=ArrayAdapter.createFromResource(这个,R.array.titoli,android.R.layout.simple\u list\u item\u 1);
lV_titoli.设置适配器(适配器);
最终目的地=新目的地(此活动为主类);
eT_search.addTextChangedListener(新的TextWatcher(){
@凌驾
public void PostTextChanged(可编辑arg0){
//TODO自动生成的方法存根
}
@凌驾
更改前的公共无效(字符序列arg0,int arg1,
整数arg2,整数arg3){
//TODO自动生成的方法存根
}
@凌驾
public void onTextChanged(字符序列arg0、int arg1、int arg2、,
int arg3){
(activity_titoli.this).adapter.getFilter().filter(arg0);
}
});
btt_backHome.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
startActivity(至家);
}
});
lV_titoli.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
Log.e(“元素:”,Integer.toString(i));
}
});
}
}
尝试以下代码:

lV_titoli.setOnItemClickListener(new AdapterView.OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Resources res = getResources();
                List<CharSequence> list = Arrays.asList(res.getStringArray(R.array.titoli));
                Log.e("Element: " , Integer.toString(list.indexOf(adapter.filgetItem(i))));

            }
        });
lV_titoli.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
Resources res=getResources();
List List=Arrays.asList(res.getStringArray(R.array.titoli));
Log.e(“元素:”,Integer.toString(list.indexOf(adapter.filgetItem(i)));
}
});
希望这有帮助