MainActivitty.java
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity {
// list view
private ListView lv;
// listview adapter
ArrayAdapter<String> adapter;
// search edittext
EditText inputsearch;
// arraylist for listview
ArrayList<HashMap<String, String>> negaralist;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// data array yang akan ditampilkan di list
String negara[] = {"indonesia","malaysia","brunei","filipina",
"thailand","myanmar","singapura","vietnam",
"kamboja","laos","brazil","amerika","inggris","italia","france","kamerun",
"argentina","portugal","germany","spanyol","mexico","kanada","belgium"};
// ambil list_view dan inputsearchnya di xml
lv = (ListView) findViewById(R.id.list_view);
inputsearch = (EditText) findViewById(R.id.inputSearch);
// proses menambahkan array kedalam listview
adapter = new ArrayAdapter<String>(this, R.layout.list_item_filter,
R.id.negara_name, negara);
lv.setAdapter(adapter);
/**
* kode dibawah ini dipakai untuk memfilter/pencarian realtime
* */
inputsearch.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
MainActivity.this.adapter.getFilter().filter(s);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}});
lv.setOnItemClickListener (new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3){
Intent i = null;
if (position == 0){
i = new Intent(MainActivity.this, Indonesia.class);}
else if(position == 1){
i = new Intent(MainActivity.this, Malaysia.class);}
else if(position == 2){
i = new Intent(MainActivity.this, Brunei.class);}
else if(position == 3){
i = new Intent(MainActivity.this, Filipina.class);}
else if(position == 4){
i = new Intent(MainActivity.this, Thailand.class);}
else if(position == 5){
i = new Intent(MainActivity.this, Myanmar.class);}
else if(position == 6){
i = new Intent(MainActivity.this, Singapur.class);}
else if(position == 7){
i = new Intent(MainActivity.this, Vietnam.class);}
startActivity(i);
}
});}
public void onBackPressed() {
finish();
System.exit(0);
}
}
activity_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" >
<EditText android:id="@+id/inputSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Search Country.."
/>
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</Linear
lis_item_filter.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:id="@+id/negara_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip"
android:textSize="16dip"
android:textStyle="bold"/>
</LinearLayout>
当我在寻找一个关键字&#34; i&#34;来自印度尼西亚,inggris和意大利。当我选择印度尼西亚,进入印度尼西亚活动,但当我选择inggris为什么进入马来西亚活动。 如何进入所选活动?点击监听器有什么问题?帮帮我
答案 0 :(得分:0)
&#39;位置&#39;来自lv对象,因此是过滤后的列表,而不是原始字符串列表。因此,当您选择&#34; inggris&#34;时,重新定位的位置为1并启动马来西亚活动。请尝试:
SELECT "purposes".id FROM "purposes" INNER JOIN "tale_purpose_joins" ON "purposes"."id" = "tale_purpose_joins"."purpose_id" WHERE "tale_purpose_joins"."tale_id" = ? [["tale_id", 1]]
并更改其他&#34;位置&#34;到&#34; pos&#34;。