简体   繁体   English

Android筛选的ListView

[英]Android Filtered ListView

I take values of listview from an xml file. 我从xml文件中获取listview的值。 These are my java and xml codes: 这些是我的Java和xml代码:

package com.gazi.tezproje;

import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.Toast;

public class verbs extends Activity {

public boolean onCreateOptionsMenu(Menu menu) {
    ActionBar bar=getActionBar(); 
    bar.setDisplayHomeAsUpEnabled(true);
    MenuInflater menu1 = getMenuInflater();
    menu1.inflate(R.menu.info, menu);
    return super.onCreateOptionsMenu(menu);
      }

public boolean onOptionsItemSelected(MenuItem item) {

       switch (item.getItemId()) {
             case R.id.menuinfo:
                 Toast.makeText(getApplicationContext(),getString(R.string.verbs), Toast.LENGTH_LONG).show();
                  break; 
             case android.R.id.home:
                 finish();
                  break; }
    return false;
    }


private ListView vlist;
EditText ara;
private String [] fiilliste;
ArrayAdapter<String> adapter;

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

        fiilliste=getResources().getStringArray(R.array.fiiller);
        vlist=(ListView)findViewById(R.id.listView1);
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, fiilliste);
        vlist.setAdapter(adapter);
        ara = (EditText) findViewById(R.id.editText1);
        vlist.setTextFilterEnabled(true);

vlist.setOnItemClickListener(new OnItemClickListener(){

    public void onItemClick(AdapterView<?> a,View v,int position,long id){          




    }


 }); 

 ara.addTextChangedListener(new TextWatcher(){

      public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
          // When user changed the Text

         verbs.this.adapter.getFilter().filter(cs); 

      }

    @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

    }
 });

}}

XML File XML文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <string-array name="fiiller">
        <item>A</item>
        <item>Affetmek</item>
        <item>Almak</item>
        <item>Anlamak</item>
        <item>Anlaşmak</item>
        <item>Anlatmak</item>
        <item>Ayrılmak</item>
        <item>B</item>
        <item>Bakmak</item>
        <item>Başlamak</item>
    </string-array>
</resources>

For example; 例如; when I clicked on listview which is "Bakmak", I wanna show a text with toast, even when listview is filtered. 当我单击“ Bakmak”的列表视图时,即使过滤列表视图,我也想显示带有吐司的文本。 And for other item of listview, another toast. 对于listview的其他项目,还有另一个吐司。 I couldn't do it, because after filtering as you know, positions of items change. 我无法执行此操作,因为如您所知,过滤之后,项目的位置会发生变化。

I really need your ideas and help! 我真的需要您的想法和帮助! Thank you! 谢谢!

Even if the Adapter is filtered, Adapter should return the item from filtered list 即使适配器被过滤,适配器也应该从过滤列表中返回项目

Did you try this code? 您是否尝试过此代码?

    vlist.setOnItemClickListener(new OnItemClickListener(){

        public void onItemClick(AdapterView<?> a,View v,int position,long id){          

           Toast.makeText(getApplicationContext(),adapter.getItem(position), Toast.LENGTH_LONG).show();


        }

 }); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android-Listview没有被过滤 - Android - Listview not getting filtered 在列表视图中的Android操作栏中执行过滤搜索 - Performing filtered search in android actionbar over a listview 在Android中旋转后维护过滤后的列表视图 - Maintain filtered listview after rotation in android 在Android的过滤后的ListView中设置项目的原始位置 - Set the original position of item in filtered ListView in Android Android筛选的Listview最初加载了所有项目 - Android filtered Listview with all Items loaded initially ListView自定义过滤器在过滤时选择了错误的项目[Android] - ListView custom filter gives wrong item selected when filtered [Android] 如何使过滤后的搜索结果显示在列表视图中(android) - How to make the filtered search result to display in listview(android) 如何使用搜索功能使过滤的项目显示在列表视图中(android) - How to make filtered items to displayed in listview using search functionality(android) Android SearchView过滤后的listview-如何删除查询框? - Android SearchView filtered listview - how to remove query box? Android-无法使用来自edittext字符串的过滤结果更新listview - Android - cannot update listview with filtered results from edittext string
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM