在Android上,我如何ListView根据用户输入进行过滤,其中显示的项目是根据TextView值动态更新的?
我正在寻找这样的东西:
-------------------------
| Text View |
-------------------------
| List item |
| List item |
| List item |
| List item |
| |
| |
| |
| |
-------------------------
Run Code Online (Sandbox Code Playgroud) 我跟着这个例子:
http://developer.android.com/resources/tutorials/views/hello-autocomplete.html
我想知道如何使用ListView而不是随TextView提供的下拉窗口来实现它.
例如,当用户键入textView时,textView正下方有一个ListView,当用户在textView字段中键入时,它将不断变化.
编辑:这是我编写的解决方案,感谢Josephus:
package com.jaylefler.contacts;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
public class ContactProjectActivity extends Activity {
/** Called when the activity is first created. */
// List of all contacts
private ArrayList<String> searchNames = new ArrayList<String>();
// Filtered list of contacts after user begins typing in search field
private ArrayList<String> partialNames = new ArrayList<String>();
// List of names matching criteria are listed here
private ListView myList;
// …Run Code Online (Sandbox Code Playgroud) 我正在制作一本类似Android的应用程序的电子书,我希望过滤书籍的标题,但每次你在编辑文本中放置一个单词或句子,它将搜索书籍的内容...有人可以帮我这个...
我有一个ListView.它的每一行包含3 TextView和2 Button.在它上面我有一个EditText.如何按每行ListView第一TextView行的值过滤我的?
我想将我的EditText限制为仅特定的字符,如(az,AZ,0-9,空格,和其他一些).
如果用户尝试输入列表之外的某些其他字符,则不应在edittext中显示.
有没有办法做到这一点?
android对我来说是新的.我正在尝试在1.5平台上开发一个程序但仍在进行中,plz指导我.
我有以下格式的一些信息
"item1","description1"
"item2","description2"
"item3","description3"
"item4","description4"
.
.
.
.
Run Code Online (Sandbox Code Playgroud)
我想在屏幕上显示它们,我不知道哪种方法可以做到这一点.谷歌之后我发现了2种方法.但我没有成功实施任何一个.
方法1
我将两列数据分成两个不同的数组,然后使用第1列的数组填充listactivity,启用过滤器和点击的事件我想提出警告,应该显示文本点击倾斜和desc从第二个数组作为基于位置的消息体.但是如果使用过滤器索引变成重新初始化,这里有问题:-(并且没有找到另一种方法来获取该行的文本.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, Names));
getListView().setTextFilterEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
public void onListItemClick(ListView parent, View v, int position, long id) {
Builder builder = new AlertDialog.Builder(this);
builder.setTitle(Names[position]);
builder.setMessage(description[position] + " -> " + position );
builder.setPositiveButton("ok", null);
builder.show();
}
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
如果使用过滤器,它不会从位置选择正确的项目:-(,plz guide你可以分享这个的源代码
方法B.
在这里,我尝试从XML生成列表行,但给出1.5 jar文件不允许修改的错误:-(
public View getView(int position, View …Run Code Online (Sandbox Code Playgroud)