如何进入listview中的选定活动

时间:2015-06-06 01:11:18

标签: android android-listview intentfilter

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为什么进入马来西亚活动。 如何进入所选活动?点击监听器有什么问题?帮帮我

1 个答案:

答案 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;。