2017-01-05 3 views
0

Android-Suche ist nicht genau, wenn eine andere Aktivität übergeben wird.Android-Suche nicht passgenau bei Weitergabe einer anderen Aktivität

Das ist meine App

Dies ist die wichtigste Seite

[Main] https://drive.google.com/open?id=0B2SE2JZYuezja2JqRHcycWdhWTA

Als ich eines Wortes das erste Array suchen Beschreibung sehen sein und es ist nicht genaue Beschreibung .

Dies ist die gleiche Ausgabe an die eine, die ich
[Gleiche Ausgabe] https://drive.google.com/open?id=0B2SE2JZYuezjQmNFSm45RHloT3c


Dies ist mein Codes

MainActivity.java

package com.skholingua.android.searchview; 

import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.text.TextUtils; 
import android.util.Log; 
import android.view.LayoutInflater.Filter; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.SearchView; 

public class MainActivity extends Activity implements 
     SearchView.OnQueryTextListener { 
    String[] stateList; 
    String[] anotherStringArray; 
    private SearchView searchView; 
    private ListView listView; 
    private ArrayAdapter<String> adapter; 




    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     searchView = (SearchView) findViewById(R.id.searchView1); 
     listView = (ListView) findViewById(R.id.listView1); 
     stateList = getResources().getStringArray(R.array.stateList); 
     anotherStringArray = getResources().getStringArray(R.array.anotherStringArray); 

     adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, stateList); 
     listView.setAdapter(adapter); 
     listView.setTextFilterEnabled(true); 


     // Sets the default or resting state of the search field. 
     // If true, a single search icon is shown by default and 
     // expands to show the text field and other buttons when pressed 
     //searchView.setIconifiedByDefault(false); 
     searchView.setOnQueryTextListener(this); 

     // Sets the hint text to display in the query text field 
     //searchView.setQueryHint("State Name"); 

     int searchPlateId = searchView.getContext().getResources() 
       .getIdentifier("android:id/search_plate", null, null); 
     View searchPlateView = searchView.findViewById(searchPlateId); 
     if (searchPlateView != null) { 
      searchPlateView.setBackgroundColor(Color.TRANSPARENT); 
     } 

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       String stateName = listView.getAdapter().getItem(position).toString(); 

       // Put selected state to intent. 
       Intent intent = new Intent(MainActivity.this, NextActivity.class); 
       intent.putExtra("selectedState", stateName); 
       intent.putExtra("anotherStringArray",anotherStringArray[position]); 
       startActivity(intent); 
      } 
     }); 

    } 



    @Override 
     public boolean onQueryTextChange(String newText) { 
      android.widget.Filter filter = adapter.getFilter(); 
      if (TextUtils.isEmpty(newText)) { 
       filter.filter(""); 
      } else { 
       filter.filter(newText); 
      } 
      return true; 
     } 

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

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 
klicken

activity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:focusableInTouchMode="true" 
    tools:context="com.skholingua.android.searchview.MainActivity" > 

    <SearchView 
     android:id="@+id/searchView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:background="@drawable/search_view_border" 
     android:iconifiedByDefault="false" 
     android:padding="2dp" 
     android:queryHint="Search...." 
     android:layout_alignParentTop="true" > 

    </SearchView> 

    <ListView 
     android:id="@+id/listView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/searchView1" 
     android:layout_centerHorizontal="true" > 

    </ListView> 

</RelativeLayout> 

NextActivity.class

package com.skholingua.android.searchview; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.TextView; 

public class NextActivity extends Activity { 

    TextView t1,t2; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.next); 

     t1 = (TextView) findViewById(R.id.name1); 
     t2 = (TextView) findViewById(R.id.name2); 
     Intent intent = getIntent(); 

     String state_name= getIntent().getExtras().getString("selectedState"); 
     String stateDescription= getIntent().getExtras().getString("anotherStringArray"); 

     t1.setText(state_name); 
     t2.setText(stateDescription); 

    } 

} 

next.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#00ffff" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="10dp" 
      > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Word:" 
       android:typeface="serif" 
       android:textColor="#000" 
       android:textSize="19dp" /> 

      <TextView 
       android:id="@+id/name1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:text="" 
       android:textColor="#f00" 
       android:textSize="18dp" 
       android:typeface="serif" /> 

     </LinearLayout> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingLeft="10dp" 
      android:textColor="#000" 
      android:typeface="serif" 
      android:text="Definition:" 
      android:textSize="19dp" /> 

     <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/name2" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:textColor="#000" 

      android:padding="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp" 
      android:text="" 
      android:background="#fff" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 


     </ScrollView> 

    </LinearLayout> 


</RelativeLayout> 

strings.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string name="app_name">SearchView</string> 
    <string name="hello_world">Hello world!</string> 
    <string name="action_settings">Settings</string> 

    <string-array name="stateList"> 
     <item>Abstract Window Toolkit (AWT)</item> 
     <item>abstract</item> 
     <item>abstract class</item> 
     <item>abstract method</item> 
     <item>access control</item> 
     <item>ACID</item> 
     <item>activation</item> 
     <item>actual parameter list</item> 
     <item>alpha value</item> 

    </string-array> 


    <string-array name="anotherStringArray"> 
     <item>A collection of graphical user interface (GUI) components that were implemented usingnative-platform versions of the components. These components provide that subset of functionalitywhich is common to all native platforms. Largely supplanted by the Project Swing component set.</item> 
     <item>A Java(TM) programming language keyword used in a class definition to specify that a class is not to be instantiated, but rather inherited by other classes. An abstract class can have abstract method that are not implemented in the abstract class, but in subclasses.</item> 
     <item>A class that contains one or more abstract methods, and therefore can never be instantiated. Abstract classes are defined so that other classes can extend them and make them concrete by implementing the abstract methods.</item> 
     <item>A method that has no implementation.</item> 
     <item>The methods by which interactions with resources are limited to collections of users or programs for the purpose of enforcing integrity, confidentiality, or availability constraints.</item> 
     <item>The acronym for the four properties guaranteed by transactions: atomicity, consistency, isolation,and durability.</item> 
     <item>The process of transferring an enterprise bean from secondary storage to memory.</item> 


    </string-array> 

</resources> 

Ich hoffe, Sie werden mir helfen, dieses Problem zu beheben. Vielen Dank.

Antwort

0

Hier ist Ihre Lösung.

zunächst Ihre Haupttätigkeit ersetzen listView.setOnItemClickListener => onItemClick Methode mit folgendem Code

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      String stateName = listView.getAdapter().getItem(position).toString(); 
      int pos=0; 
      for(int i=0;i<stateList.length;i++) 
      { 
       if(stateList[i].equals(stateName)) 
       { 
        pos=i; 
        break; 
       } 
      } 
      // Put selected state to intent. 
      Intent intent = new Intent(MainActivity.this, NextActivity.class); 
      intent.putExtra("selectedState", stateName); 
      intent.putExtra("anotherStringArray", anotherStringArray[pos]); 
      startActivity(intent); 
     } 
    }); 

Und auch Ihren stateList Array und und anotherStringArray als gleiche Größe in string.xml Datei.

<string-array name="stateList"> 
    <item>Abstract Window Toolkit (AWT)</item> 
    <item>abstract</item> 
    <item>abstract class</item> 
    <item>abstract method</item> 
    <item>access control</item> 
    <item>ACID</item> 
    <item>activation</item> 
    <item>actual parameter list</item> 
    <item>alpha value</item> 

</string-array> 


<string-array name="anotherStringArray"> 
    <item>A collection of graphical user interface (GUI) components that were implemented usingnative-platform versions of the components. These components provide that subset of functionalitywhich is common to all native platforms. Largely supplanted by the Project Swing component set.</item> 
    <item>A Java(TM) programming language keyword used in a class definition to specify that a class is not to be instantiated, but rather inherited by other classes. An abstract class can have abstract method that are not implemented in the abstract class, but in subclasses.</item> 
    <item>A class that contains one or more abstract methods, and therefore can never be instantiated. Abstract classes are defined so that other classes can extend them and make them concrete by implementing the abstract methods.</item> 
    <item>A method that has no implementation.</item> 
    <item>The methods by which interactions with resources are limited to collections of users or programs for the purpose of enforcing integrity, confidentiality, or availability constraints.</item> 
    <item>The acronym for the four properties guaranteed by transactions: atomicity, consistency, isolation,and durability.</item> 
    <item>The process of transferring an enterprise bean from secondary storage to memory.</item> 
    <item>Add your text here</item> 
    <item>Add some other text here</item> 

</string-array> 
+0

Sie haben mich gerettet. Ich danke dir sehr :) –

Verwandte Themen