2017-02-25 66 views
0

MainActivity.class 問題是,當我要從列表視圖中搜索任何所需的項目,然後單擊它,然後它總是當我搜索時,打開的第一個位置項目被添加到程序中不需要的項目中。當我搜索任何列表視圖項目,然後去點擊願望項目,它總是打開列表視圖的第一個位置

package com.example.rushikesh.first; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.text.TextUtils; 
import android.view.View; 
import android.view.Window; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.SearchView; 
import com.example.rushikesh.first.R; 
import com.google.android.gms.ads.AdListener; 
import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.AdView; 
import com.google.android.gms.ads.InterstitialAd; 

public class Basic_programs extends Activity implements SearchView.OnQueryTextListener 
{ 

private SearchView mSearchView; 
private ListView mListView; 
private AdView mAdView; 
private final String[] mStrings = Cheeses.sCheeseStrings; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 
    setContentView(R.layout.basic_prog_list); 
    mSearchView = (SearchView) findViewById(R.id.search_view); 
    mListView = (ListView) findViewById(R.id.list_view); 
    mListView.setAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, 
      mStrings)); 
    mListView.setTextFilterEnabled(true); 
    setupSearchView(); 

    mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 

      String itemValue = (String) mListView.getItemAtPosition(position); 
      if(position == 0) { 
       Intent i = new Intent("android.intent.action.FIRST_PROG"); 
       startActivity(i); 
      } 
      if(position == 1) { 
       Intent i = new Intent("android.intent.action.SECOND_PROG"); 
       startActivity(i); 
      } 
      if(position == 2) { 
       Intent i = new Intent("android.intent.action.THIRD_PROG"); 
       startActivity(i); 
      } 
      if(position == 3) { 
       Intent i = new Intent("android.intent.action.FOURTH_PROG"); 
       startActivity(i); 
      } 
      if(position == 4) { 
       Intent i = new Intent("android.intent.action.FIFTH_PROG"); 
       startActivity(i); 
      } 
      if(position == 5) { 
       Intent i = new Intent("android.intent.action.SIXTH_PROG"); 
       startActivity(i); 
      } 
      if(position == 6) { 
       Intent i = new Intent("android.intent.action.SEVENTH_PROG"); 
       startActivity(i); 
      } 
      if(position == 7) { 
       Intent i = new Intent("android.intent.action.EIGHT_PROG"); 
       startActivity(i); 
      } 
      if(position == 8) { 
       Intent i = new Intent("android.intent.action.NINTH_PROG"); 
       startActivity(i); 
      } 
      if(position == 9) { 
       Intent i = new Intent("android.intent.action.TENTH_PROG"); 
       startActivity(i); 
      } 
      if(position == 10) { 
       Intent i = new Intent("android.intent.action.ELEVEN_PROG"); 
       startActivity(i); 
      } 
      if(position == 11) { 
       Intent i = new Intent("android.intent.action.TWELVE_PROG"); 
       startActivity(i); 
      } 
      if(position == 12) { 
       Intent i = new Intent("android.intent.action.THIRTEEN_PROG"); 
       startActivity(i); 
      } 
      if(position == 13) { 
       Intent i = new Intent("android.intent.action.FOURTEEN_PROG"); 
       startActivity(i); 
      } 
      if(position == 14) { 
       Intent i = new Intent("android.intent.action.FIFTEEN_PROG"); 
       startActivity(i); 
      } 
      if(position == 15) { 
       Intent i = new Intent("android.intent.action.SIXTEEN_PROG"); 
       startActivity(i); 
      } 
      if(position == 16) { 
       Intent i = new Intent("android.intent.action.SEVENTEEN_PROG"); 
       startActivity(i); 
      } 
      if(position == 17) { 
       Intent i = new Intent("android.intent.action.EIGHTEEN_PROG"); 
       startActivity(i); 
      } 
      if(position == 18) { 
       Intent i = new Intent("android.intent.action.NINETEEN_PROG"); 
       startActivity(i); 
      } 
      if(position == 19) { 
       Intent i = new Intent("android.intent.action.TWENTY_PROG"); 
       startActivity(i); 
      } 
      if(position == 20) { 
       Intent i = new Intent("android.intent.action.TWENTYONE_PROG"); 
       startActivity(i); 
      } 
      if(position == 21) { 
       Intent i = new Intent("android.intent.action.TWENTYTWO_PROG"); 
       startActivity(i); 
      } 
      if(position == 22) { 
       Intent i = new Intent("android.intent.action.TWENTYTHREE_PROG"); 
       startActivity(i); 
      } 
      if(position == 23) { 
       Intent i = new Intent("android.intent.action.TWENTYFOUR_PROG"); 
       startActivity(i); 
      } 
      if(position == 24) { 
       Intent i = new Intent("android.intent.action.TWENTYFIVE_PROG"); 
       startActivity(i); 
      } 
      if(position == 25) { 
       Intent i = new Intent("android.intent.action.TWENTYSIX_PROG"); 
       startActivity(i); 
      } 
      if(position == 26) { 
       Intent i = new Intent("android.intent.action.TWENTYSEVEN_PROG"); 
       startActivity(i); 
      } 
      if(position == 27) { 
       Intent i = new Intent("android.intent.action.TWENTYEIGHT_PROG"); 
       startActivity(i); 
      } 
      if(position == 28) { 
       Intent i = new Intent("android.intent.action.TWENTYNINE_PROG"); 
       startActivity(i); 
      } 
      if(position == 29) { 
       Intent i = new Intent("android.intent.action.THIRTY_PROG"); 
       startActivity(i); 
      } 
      if(position == 30) { 
       Intent i = new Intent("android.intent.action.THIRTYONE_PROG"); 
       startActivity(i); 
      } 
      if(position == 31) { 
       Intent i = new Intent("android.intent.action.THIRTY_TWO"); 
       startActivity(i); 
      } 
      if(position == 32) { 
       Intent i = new Intent("android.intent.action.THIRTY_THREE"); 
       startActivity(i); 
      } 
      if(position == 33) { 
       Intent i = new Intent("android.intent.action.THIRTY_FOUR"); 
       startActivity(i); 
      } 
     } 
    }); 

} 


private void setupSearchView() { 
    mSearchView.setIconifiedByDefault(false); 
    mSearchView.setOnQueryTextListener(this); 
    mSearchView.setSubmitButtonEnabled(true); 
    mSearchView.setQueryHint("e.g. Factorial number"); 
} 

public boolean onQueryTextChange(String newText) { 
    if (TextUtils.isEmpty(newText)) { 
     mListView.clearTextFilter(); 
    } else { 
     mListView.setFilterText(newText.toString()); 
    } 
    return true; 
} 

public boolean onQueryTextSubmit(String query) { 
    return false; 
} 
} 

Cheeses.class活動

package com.example.rushikesh.first; 

public class Cheeses { 

public static final String[] sCheeseStrings = { 
     "Hello World!", "Addition of two numbers", "Add two numbers in range of integers(4 bytes)", "Factorial number taking user input", "calculating factorial of large numbers", 
     "Odd or Even number", "Odd or Even number (Second method)", "Reverse number", "Get input from user in Java", 
     "If else program in Java", "Nested If Else program", 
     "Print multiplication table", "For loop program in Java", "For loop program to print Stars Pattern", 
     "For loop program to print an Alphabets", 
     "While loop program to print an Alphabet", "Do-while program to print an Alphabet", "Convert Fahrenheit to Celsius", 
     "Swap two numbers using third variable", "Swap two numbers without using third variable", 
     "Reverse a string", "Reverse a string using String Buffer class", "Java program to get Ip address", 
     "Print prime numbers", "Check palindrome number", 
     "Factorial number", "Factorial number using Recursion", "Fibonacci Series in Java without using recursion", 
     "Fibonacci Series in Java using recursion", "Search a word inside a string", "Convert integer into hex", 
     "Java For loop Thread Sleep method Example", "Thread example by Extending Thread Class", 
     "Thread example by Implementing Runnable Interface" 

}; 



} 
+0

爲什麼在String變量中保存點擊列表項的位置,即int? –

回答

0

在當你輸入的搜索文本查看它過濾掉來自陣列適配器相匹配的項目的情況。

因此,當您設置陣列適配器時,陣列的所有項目都會重新定義它們的位置。

在這裏,你必須找到一個選擇的結果的位置從sCheeseStrings

的,你可以找到下面的代碼行。請詢問你是否有任何疑問。

 String itemValue = (String) mListView.getItemAtPosition(position); 

     int itemPosition = 0; 
      for (int i = 0; i < mStrings.length; i++) { 
       if (itemValue.equalsIgnoreCase(mStrings[i])) { 
        itemPosition = i; 
       } 
      } 

      if (itemPosition == 0) { 
       String content = "android.intent.action.FIRST_PROG"; 
       Intent i = new Intent(content); 
       startActivity(i); 
      } 
      if (itemPosition == 1) { 
       Intent i = new Intent("android.intent.action.SECOND_PROG"); 
       startActivity(i); 
      } 
      if (itemPosition == 2) { 
       Intent i = new Intent("android.intent.action.THIRD_PROG"); 
       startActivity(i); 
      } 
相關問題