如何将搜索添加到Listview?

时间:2017-04-30 12:03:56

标签: android listview search

我是编程新手并尝试制作一个应用程序,其中我有一个带有可点击代码的Listview。当我点击一个元素并打开另一个Listview时(TextView会更好,但我也无法做到。但优先考虑的是搜索)。 问题是,列表很长,我想添加搜索。 我试了一个多星期但找不到解决办法。 您是否有人能够帮助我,添加搜索? 该项目的链接位于帖子的末尾!

这是Listview的图片: 这是MainActivity的代码:

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {


ListView listView;
Button but_zu_codes;


ArrayAdapter<String> mAdapter;

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

    but_zu_codes = (Button) findViewById(R.id.codes);



   but_zu_codes.setOnClickListener(this);



    listView = (ListView) findViewById(R.id.listView);

    mAdapter = new ArrayAdapter<String>(MainActivity.this,
            android.R.layout.simple_list_item_1,
            getResources().getStringArray(R.array.tr_codes));

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Intent intent = new Intent(MainActivity.this, ListActivity.class);
            intent.putExtra("TroubleCodes", listView.getItemAtPosition(i).toString());
            startActivity(intent);

        }
    });
    listView.setAdapter(mAdapter);



}




@Override
public void onClick(View v) {

    if (v.getId() == R.id.codes) {
        Intent weiter = new Intent(MainActivity.this, MainActivity.class);
        startActivity(weiter);
    }

}
}


}

ListActivity的代码:

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

public class ListActivity extends AppCompatActivity {

ListView listView;
String[] states;


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



    listView = (ListView) findViewById(R.id.listView);
    Bundle mBundle = getIntent().getExtras();
    if (mBundle != null) {
        String country = mBundle.getString("TroubleCodes");
        if (country.equalsIgnoreCase("B0562")) {
            states = getResources().getStringArray(R.array.c_B0562);
        }

        else if (country.equalsIgnoreCase("B0563")) { states = getResources().getStringArray(R.array.c_B0563); }
        else if (country.equalsIgnoreCase("B1004")) { states = getResources().getStringArray(R.array.c_B1004); }
        else if (country.equalsIgnoreCase("B1005")) { states = getResources().getStringArray(R.array.c_B1005); }
        else if (country.equalsIgnoreCase("B1006")) { states = getResources().getStringArray(R.array.c_B1006); }

    }

    ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(ListActivity.this,
            android.R.layout.simple_list_item_1, states);
    listView.setAdapter(mAdapter);
}
}

这是我的android工作室项目的链接:https://www.dropbox.com/s/9b5r7t6z91t5y0a/3_Codes.rar?dl=0

1 个答案:

答案 0 :(得分:1)

您在网络上有多个示例。保持简短,你想要

  1. 带有OnTextChangedListener的EditText
  2. 在OnTextChangedListener中,过滤整个项目列表
  3. 使用已过滤的列表
  4. 替换ListView的元素
  5. 通知ListView适配器,以便再次呈现列表
  6. 在代码示例中查看此类链接:How to use search functionality in custom list view in Android