XML 파일에서 listview 값을 가져옵니다. 이 내 자바와 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 파일
예를 들어<?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>
; "Bakmak"인 listview를 클릭했을 때, listview가 걸러 졌을 때조차도, 토스트가있는 텍스트를 보여주고 싶습니다. 그리고 listview의 다른 항목을 위해, 또 다른 토스트. 나는 그것을 할 수 없었습니다. 왜냐하면 당신이 알고있는 것처럼 필터링 한 후에, 항목의 위치가 바뀌기 때문입니다.
정말 아이디어와 도움이 필요합니다. 고맙습니다! 어댑터가 필터링 된 경우에도
위치가 바뀌는 문제는 무엇입니까? – pskink
"Bakmak"의 일반적 위치는 8입니다. "b"를 시작하는 단어에 대해 listview를 필터링하면 위치가 8에서 2로 바뀝니다. 문제가 있습니다. – Johnny
어떤 종류의 문제입니까? – pskink