0
텍스트 워처를 사용하여 목록을 검색하고 표시하는 데 문제가 있습니다. 목록에서 간단한 검색 작업입니다. 먼저 데이터는 .txt에서 한 줄씩 검색됩니다. 문자열의 첫 단어는 내가 목록보기 여기Android : 도움말 텍스트 감시자는 afterTextChanged와 논리적 오류를 비교합니다.
에 결과를이 내용 목록 검색 작업을 수행하고 표시 할 지금 목록 내용에 저장하는 코드
enter code here
package com.android;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import android.app.ListActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.ListView;
import android.widget.TextView;
public class MyListDemoActivity extends ListActivity {
/** Called when the activity is first created. */
TextView tv;
// final String[] values=new String[]{"android","Windows",
// "ios","BlackBerry","Java",".Net","WebOS", "Ubuntu", "Windows7"};
//String[] content;
List<String> content ;
AutoCompleteTextView actv;
List<String> arr_sort;
ArrayAdapter<String> adapter;
ListView lv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String line = " ";
LineNumberReader linenoreader = null;
StringTokenizer stringtokanixer = null;
content=new ArrayList<String>();
lv=(ListView)findViewById(android.R.id.list);
try {
InputStream istream = getResources().openRawResource(R.raw.hihihi);
InputStreamReader streamreader = new InputStreamReader(istream);
linenoreader = new LineNumberReader(streamreader);
linenoreader.mark(15);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}// try catch ends here
Log.v("getting", "working");
for (int i = 0; i < 6; i++) {
try {
line = linenoreader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
Log.v("getting", line);
stringtokanixer = new StringTokenizer(line);
String st=stringtokanixer.nextToken();
content.add(st);
}// for ends here
adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,content);
// setListAdapter(adapter);
lv.setAdapter(adapter);
tv= (TextView)findViewById(R.id.textView1);
actv=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
actv.addTextChangedListener(new TextWatcher() {
int len=0;
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
len=actv.getText().length();
for(int i=0;i<content.size();i++)
{
if(len<=content.get(i).length())
{
if(actv.getText().toString().equalsIgnoreCase((String) content.get(i).subSequence(0, len)))
{
arr_sort.add(content.get(i));
}
}
}
adapter=new ArrayAdapter<String>(MyListDemoActivity.this,android.R.layout.simple_list_item_1,arr_sort);
setListAdapter(adapter);
}
}); // text watcher class ends here
}// on create ends here
public void onListItemClick(ListView ls,View v, int position,long id) {
tv.setText(content.get(position));
//tv.setText(content[position]) // in case of string
}// endsd here onListItemClick(
}
에게 있습니다 여기 main.xml입니다
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=" " >
</AutoCompleteTextView>
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="TextView" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
>
</ListView>
</LinearLayout>
여기에 txt 파일
입니다.joke happy
hota happy okgame
ok happy okgame
asitis happy
okgame happy
oktested happy happy
나는 afterTextChanged에 논리적 오류가 있지만 그럴 수 없다고 생각합니다.