2017-06-12 2 views
1

Ich habe eine Listenansicht in einem Fragment in einer Aktivität mit Registerkarten. Meine Listenansicht enthält Bilder und Text. Leider weiß ich nicht, wie man die Suchfunktion zu dem Fragment hinzufügt. Die Suchfunktion muss die Bilder anzeigen. Ich hoffe, dass jemand me.if jemand meine Frage verstanden Dont helfen können, bitte fragen Sie nach Stute InformationesAndroid Stundio Hinzufügen von Suchfunktion zu Fragment mit einem Listenansicht

public class Fragment_1 extends Fragment { 

    String text ; 
    int zähler = 0; 
    String teile[]; 
    String inTitel ="" ,inBeschreibung ="",inTitel2 ="" ,inBeschreibung2 ="",in = "", in2 = "", in3 = "",in4 = "" ,in5 = "", in6 = "", in7 = "", in8 = "",in9 = "", in10 = "", in11 = "", in12 = "", in13 = "",in14 = "", in15 = "", in16 = "", in17= "", in18 = "",in19 = "", in20 = "", in21 = "", in22 = "", in23 = "", in24= ""; 
    ListView listView; 
    String [] liste; 
    String value = "MIT"; 
    int check= 0; 
    String titles []; 
    // String in2 []; 
    String description []; 



    String[] kontrolle; 
    int imgss[], imgss2[]; 
    int[] imgs ={}; 



    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 



     View view = inflater.inflate(R.layout.fragment_1, container, false); 

     listView = (ListView) view.findViewById(R.id.list1); 
     // final Button but = (Button) view.findViewById(R.id.but1) ; 





     new doit().execute(); 





     return view; 
    } 



    public class doit extends AsyncTask<Object, Object, String> { 
     String words = ""; 
     @Override 
     protected String doInBackground(Object... params) { 

      try { 
       Document doc = Jsoup.connect("http://vertretung.esy.es/gust.txt").get(); 
       words = doc.text(); 
       text = words; 

       teile = words.split("\\s"); 
       //Log.d("MainActivity" ,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"+text); 






      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

      return words; 
     } 

     @Override 
     protected void onPostExecute(String aVoid) { 
      super.onPostExecute(aVoid); 
      while (zähler < (5)) { // Weiter machen 
       if (zähler == 0) { 
        inTitel = teile[1] + " " + teile[2] + " "; 
       } 
       inBeschreibung = teile[0] + " " + teile[3] + " " + teile[4]; 





       if (inBeschreibung.contains("5a")){ 
        imgss2 = new int[]{R.drawable.klasse5a}; 
       }else if (inBeschreibung.contains("5b")) { 
        imgss2 = new int[]{R.drawable.klasse5b}; 
       }else if (inBeschreibung.contains("5c")) { 
        imgss2 = new int[]{R.drawable.klasse5c}; 
       }else if (inBeschreibung.contains("5d")) { 
        imgss2 = new int[]{R.drawable.klasse5d}; 
       }else if (inBeschreibung.contains("5e")) { 
        imgss2 = new int[]{R.drawable.klasse5e}; 
       }else if (inBeschreibung.contains("5f")) { 
        imgss2 = new int[]{R.drawable.klasse5f}; 
       }else if (inBeschreibung.contains("5g")) { 
        imgss2 = new int[]{R.drawable.klasse5g}; 
        //5 zu ende 
       }else if (inBeschreibung.contains("6a")) { 
        imgss2 = new int[]{R.drawable.klasse6a}; 
       }else if (inBeschreibung.contains("6b")) { 
        imgss2 = new int[]{R.drawable.klasse6b}; 
       }else if (inBeschreibung.contains("6c")) { 
        imgss2 = new int[]{R.drawable.klasse6c}; 
       }else if (inBeschreibung.contains("6d")) { 
        imgss2 = new int[]{R.drawable.klasse6d}; 
       }else if (inBeschreibung.contains("6e")) { 
        imgss2 = new int[]{R.drawable.klasse6e}; 
       }else if (inBeschreibung.contains("6f")) { 
        imgss2 = new int[]{R.drawable.klasse6f}; 
       }else if (inBeschreibung.contains("6g")) { 
        imgss2 = new int[]{R.drawable.klasse6g}; 
        //6 zu ende 
       }else if (inBeschreibung.contains("7a")) { 
        imgss2 = new int[]{R.drawable.klasse7a}; 
       }else if (inBeschreibung.contains("7b")) { 
        imgss2 = new int[]{R.drawable.klasse7b}; 
       }else if (inBeschreibung.contains("7c")) { 
        imgss2 = new int[]{R.drawable.klasse7c}; 
       }else if (inBeschreibung.contains("7d")) { 
        imgss2 = new int[]{R.drawable.klasse7d}; 
       }else if (inBeschreibung.contains("7e")) { 
        imgss2 = new int[]{R.drawable.klasse7e}; 
       }else if (inBeschreibung.contains("7f")) { 
        imgss2 = new int[]{R.drawable.klasse7f}; 
       }else if (inBeschreibung.contains("7g")) { 
        imgss2 = new int[]{R.drawable.klasse7g}; 
        //7 zu ende 
       }else if (inBeschreibung.contains("8a")) { 
        imgss2 = new int[]{R.drawable.klasse8a}; 
       }else if (inBeschreibung.contains("8b")) { 
        imgss2 = new int[]{R.drawable.klasse8b}; 
       }else if (inBeschreibung.contains("8c")) { 
        imgss2 = new int[]{R.drawable.klasse8c}; 
       }else if (inBeschreibung.contains("8d")) { 
        imgss2 = new int[]{R.drawable.klasse8d}; 
       }else if (inBeschreibung.contains("8e")) { 
        imgss2 = new int[]{R.drawable.klasse8e}; 
       }else if (inBeschreibung.contains("8f")) { 
        imgss2 = new int[]{R.drawable.klasse8f}; 
       }else if (inBeschreibung.contains("8g")) { 
        imgss2 = new int[]{R.drawable.klasse8g}; 
        //8 zu ende 
       }else if (inBeschreibung.contains("9a")) { 
        imgss2 = new int[]{R.drawable.klasse9a}; 
       }else if (inBeschreibung.contains("9b")) { 
        imgss2 = new int[]{R.drawable.klasse9b}; 
       }else if (inBeschreibung.contains("9c")) { 
        imgss2 = new int[]{R.drawable.klasse9c}; 
       }else if (inBeschreibung.contains("9d")) { 
        imgss2 = new int[]{R.drawable.klasse9d}; 
       }else if (inBeschreibung.contains("9e")) { 
        imgss2 = new int[]{R.drawable.klasse9e}; 
       }else if (inBeschreibung.contains("9f")) { 
        imgss2 = new int[]{R.drawable.klasse9f}; 
       }else if (inBeschreibung.contains("9g")) { 
        imgss2 = new int[]{R.drawable.klasse9g}; 
        //9 zu ende 
       }else if (inBeschreibung.contains("10a")) { 
        imgss2 = new int[]{R.drawable.klasse10a}; 
       }else if (inBeschreibung.contains("10b")) { 
        imgss2 = new int[]{R.drawable.klasse10b}; 
       }else if (inBeschreibung.contains("10c")) { 
        imgss2 = new int[]{R.drawable.klasse10c}; 
       }else if (inBeschreibung.contains("10d")) { 
        imgss2 = new int[]{R.drawable.klasse10d}; 
       }else if (inBeschreibung.contains("10e")) { 
        imgss2 = new int[]{R.drawable.klasse10e}; 
       }else if (inBeschreibung.contains("10f")) { 
        imgss2 = new int[]{R.drawable.klasse10f}; 
       }else if (inBeschreibung.contains("10g")) { 
        imgss2 = new int[]{R.drawable.klasse10g}; 
        //10 zu ende 

        //kurse müssen noch eingetragen werden!!! 


       } 
       zähler++; 
      } 

      inBeschreibung = teile [3] + " " + teile[4]; 



      //1 
      //textView.setText(in); 

      if ((zähler - teile.length) < 0) { 
       { 
        while (zähler < 10) { 
         in2 = in2 + " " + teile[zähler]; 


         zähler++; 
        } 


        inBeschreibung2 = teile[5] + " " + teile[6] + " " + teile[9]; 

        inTitel2 = teile[7] + " " + teile[8]; 


        if (inBeschreibung2.contains("5a")) { 
         imgss = new int[]{R.drawable.klasse5a}; 
        } else if (inBeschreibung2.contains("5b")) { 
         imgss = new int[]{R.drawable.klasse5b}; 
        } else if (inBeschreibung2.contains("5c")) { 
         imgss = new int[]{R.drawable.klasse5c}; 
        } else if (inBeschreibung2.contains("5d")) { 
         imgss = new int[]{R.drawable.klasse5d}; 
        } else if (inBeschreibung2.contains("5e")) { 
         imgss = new int[]{R.drawable.klasse5e}; 
        } else if (inBeschreibung2.contains("5f")) { 
         imgss = new int[]{R.drawable.klasse5f}; 
        } else if (inBeschreibung2.contains("5g")) { 
         imgss = new int[]{R.drawable.klasse5g}; 
         //5 zu ende 
        } else if (inBeschreibung2.contains("6a")) { 
         imgss = new int[]{R.drawable.klasse6a}; 
        } else if (inBeschreibung2.contains("6b")) { 
         imgss = new int[]{R.drawable.klasse6b}; 
        } else if (inBeschreibung2.contains("6c")) { 
         imgss = new int[]{R.drawable.klasse6c}; 
        } else if (inBeschreibung2.contains("6d")) { 
         imgss = new int[]{R.drawable.klasse6d}; 
        } else if (inBeschreibung2.contains("6e")) { 
         imgss = new int[]{R.drawable.klasse6e}; 
        } else if (inBeschreibung2.contains("6f")) { 
         imgss = new int[]{R.drawable.klasse6f}; 
        } else if (inBeschreibung2.contains("6g")) { 
         imgss = new int[]{R.drawable.klasse6g}; 
         //6 zu ende 
        } else if (inBeschreibung2.contains("7a")) { 
         imgss = new int[]{R.drawable.klasse7a}; 
        } else if (inBeschreibung2.contains("7b")) { 
         imgss = new int[]{R.drawable.klasse7b}; 
        } else if (inBeschreibung2.contains("7c")) { 
         imgss = new int[]{R.drawable.klasse7c}; 
        } else if (inBeschreibung2.contains("7d")) { 
         imgss = new int[]{R.drawable.klasse7d}; 
        } else if (inBeschreibung2.contains("7e")) { 
         imgss = new int[]{R.drawable.klasse7e}; 
        } else if (inBeschreibung2.contains("7f")) { 
         imgss = new int[]{R.drawable.klasse7f}; 
        } else if (inBeschreibung2.contains("7g")) { 
         imgss = new int[]{R.drawable.klasse7g}; 
         //7 zu ende 
        } else if (inBeschreibung2.contains("8a")) { 
         imgss = new int[]{R.drawable.klasse8a}; 
        } else if (inBeschreibung2.contains("8b")) { 
         imgss = new int[]{R.drawable.klasse8b}; 
        } else if (inBeschreibung2.contains("8c")) { 
         imgss = new int[]{R.drawable.klasse8c}; 
        } else if (inBeschreibung2.contains("8d")) { 
         imgss = new int[]{R.drawable.klasse8d}; 
        } else if (inBeschreibung2.contains("8e")) { 
         imgss = new int[]{R.drawable.klasse8e}; 
        } else if (inBeschreibung2.contains("8f")) { 
         imgss = new int[]{R.drawable.klasse8f}; 
        } else if (inBeschreibung2.contains("8g")) { 
         imgss = new int[]{R.drawable.klasse8g}; 
         //8 zu ende 
        } else if (inBeschreibung2.contains("9a")) { 
         imgss = new int[]{R.drawable.klasse9a}; 
        } else if (inBeschreibung2.contains("9b")) { 
         imgss = new int[]{R.drawable.klasse9b}; 
        } else if (inBeschreibung2.contains("9c")) { 
         imgss = new int[]{R.drawable.klasse9c}; 
        } else if (inBeschreibung2.contains("9d")) { 
         imgss = new int[]{R.drawable.klasse9d}; 
        } else if (inBeschreibung2.contains("9e")) { 
         imgss = new int[]{R.drawable.klasse9e}; 
        } else if (inBeschreibung2.contains("9f")) { 
         imgss = new int[]{R.drawable.klasse9f}; 
        } else if (inBeschreibung2.contains("9g")) { 
         imgss = new int[]{R.drawable.klasse9g}; 
         //9 zu ende 
        } else if (inBeschreibung2.contains("10a")) { 
         imgss = new int[]{R.drawable.klasse10a}; 
        } else if (inBeschreibung2.contains("10b")) { 
         imgss = new int[]{R.drawable.klasse10b}; 
        } else if (inBeschreibung2.contains("10c")) { 
         imgss = new int[]{R.drawable.klasse10c}; 
        } else if (inBeschreibung2.contains("10d")) { 
         imgss = new int[]{R.drawable.klasse10d}; 
        } else if (inBeschreibung2.contains("10e")) { 
         imgss = new int[]{R.drawable.klasse10e}; 
        } else if (inBeschreibung2.contains("10f")) { 
         imgss = new int[]{R.drawable.klasse10f}; 
        } else if (inBeschreibung2.contains("10g")) { 
         imgss = new int[]{R.drawable.klasse10g}; 
         //10 zu ende 
        } 
        inBeschreibung2 = teile[6] + " " + teile[9]; 

        MyAdapter adapter = new MyAdapter(getActivity(),titles,imgs,description); 
     listView.setAdapter(adapter); 


     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Toast.makeText(getActivity().getApplicationContext(),Integer.toString(position),Toast.LENGTH_LONG).show(); 
      } 
     }); 
       } 
       class MyAdapter extends ArrayAdapter<String> { 

     Context context;   //Haben wir nicht 
     String myTitles[];   //Die Titel die wir geben 
     String myDescription[];  //Beaschreibung 
     int[] imgs;    // Array für Bilder 


     MyAdapter(Context c, String[] titles, int[] img, String[] 
     description) { 
      super(c,R.layout.row,R.id.text1,titles); 
      this.context=c; 
      this.imgs=img; 
      this.myTitles=titles; 
      this.myDescription=description; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      LayoutInflater layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); //GetActivity für was anderes ausgetauscht 
      View row = layoutInflater.inflate(R.layout.row, parent, false); 
      ImageView images = (ImageView) row.findViewById(R.id.logo); 
      TextView myTitle = (TextView) row.findViewById(R.id.text1); 
      TextView myDescription = (TextView) row.findViewById(R.id.text2); 
      //images.setImageResource(R.drawable.facebook); 
      images.setImageResource(imgs[position]);  //Von Position auf 0 gesetzt 
      myTitle.setText(titles[position]); 
      myDescription.setText(description[position]); 
      return row; 
     } 
    } 





} 
      } 

Antwort

0

Eine XML Datei in res/menu/menu.xml:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     app:actionViewClass="android.support.v7.widget.SearchView" 
     android:id="@+id/search_menu" 
     android:title="" 
     android:icon="@mipmap/ic_search" 
     app:showAsAction="ifRoom|collapseActionView"/> 
</menu> 

Dann fügen Sie diese zu Ihrem Fragment

onCreate

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 
} 

onCreateOptionsMenu

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.menu, menu); 
    MenuItem item = menu.findItem(R.id.search_menu); 
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(item); 
    searchView.setQueryHint("hit text"); 
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextChange(String newText) { 
      //define your adapter as global 
      adapter.getFilter().filter(newText); 

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

    super.onCreateOptionsMenu(menu, inflater); 
} 

Konvertieren Sie Ihre String-Array Arraylist, lassen Sie dann Ihre Adapter Geräte Filterable

class MyAdapter extends BaseAdapter implements Filterable{} 

Wenn Sie wissen nicht, wie in diesem example

Und schließlich überschreiben aussehen zu konvertieren getFilter in Adapter basierend auf, was Sie brauchen:

@Override 
public Filter getFilter() { 
Filter filter = new Filter() { 
    @Override 
    protected void publishResults(CharSequence constraint, FilterResults results) { 
    } 
    @Override 
    protected FilterResults performFiltering(CharSequence constraint) { 
     FilterResults results = new FilterResults(); 
     // Implement your logic here 
     return results; 
    } 

    }; 
    return filter; 
} 
Verwandte Themen