2016-08-03 18 views
-1

Ich habe eine Listenansicht und die Elemente entspricht verschiedenen Aktivitäten .. nach der Suche nach dem erforderlichen Element und klicken Sie auf das Element an der Position 0 geöffnet wird statt die Aktivität entsprechend dem Artikel ... ZB: Artikel1 Artikel2 Artikel3 Suche: Artikel3, nach dem Klicken auf den gesuchten Artikel3 Problem: Es öffnet sich die Aktivität entsprechend Artikel1.Nach dem Filtern der Listview-Elemente, öffnet das Element nicht die entsprechende Aktivität

hier ist mein Code:

package com.example.acer.aartisangrah; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.TextView; 

import java.util.ArrayList; 

public class first extends AppCompatActivity { 
EditText editText; 
private ListView listView; 

private String[] names = {"प्रार्थना", "सुखकर्ता दु:खहर्ता", "गजानना श्रीगणराया", "येई हो विठ्ठले", "लवथवती विक्राळा", "दुर्गे दुर्घट भारी", "आरती ज्ञानराजा", 
     "हे भोळ्या शंकरा", "ओवाळू", "मंगेशा महारूद्रा", "आला गणराया", "शेंदुर लाल चढायो", "एकदंता", "कर्पूर गौरा", "हे गजवधना", "प्रथमेश्वरा", "जयदेवा हे साईनाथा", 
     "श्री सत्यनारायणाची आरती", "श्री महालक्ष्मीची आरती", "ॐ जय लक्ष्मी माता", "आरती संतोषी माता की", "धन्य धन्य हो प्रदक्षिणा", "सुखंकर्ता की दु:खहर्ता", 
     "ॐ जय जगदीश", "हे गौरी गजानन", "घालीन लोटांगण"}; 
private int imageid[] = {R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, 
     R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, 
     R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, 
     R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji, R.drawable.ganeshaji}; 
int textlength=0; 
ArrayList<String> text_sort = new ArrayList<String>(); 

ArrayList<Integer> image_sort = new ArrayList<Integer>(); 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_first); 
    listView = (ListView) findViewById(R.id.listView); 
    editText = (EditText) findViewById(R.id.inputSearch); 
    listView.setAdapter(new MyCustomAdapter(names,imageid)); 
    editText.addTextChangedListener(new TextWatcher() 

    { 
     public void afterTextChanged(Editable s) 
     { 
     } 
     public void beforeTextChanged(CharSequence s, int start,int count, int after) 
     { 
     } 
     public void onTextChanged(CharSequence s, int start,int before, int count) 
     { textlength = editText.getText().length(); 
      text_sort.clear(); 
      image_sort.clear(); 
      for (int i = 0; i < names.length; i++) 
      { 
       if (textlength <= names[i].length()) 
       { 
        if (editText.getText().toString().equalsIgnoreCase((String) names[i].subSequence(0, textlength))) 
        { 
         text_sort.add(names[i]); 
         image_sort.add(imageid[i]); 
        } 
       } 
      } 
      listView.setAdapter(new MyCustomAdapter(text_sort, image_sort)); 
     } 

    }); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      if (position == 0) { 
       Intent myIntent = new Intent(view.getContext(), akalp.class); 
       startActivityForResult(myIntent, 0); 
      } 

      if (position == 1) { 
       Intent myIntent = new Intent(view.getContext(), Sukharta.class); 
       startActivityForResult(myIntent, 0); 
      } 

      if (position == 2) { 
       Intent myIntent = new Intent(view.getContext(), gajananashriganraya.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 3) { 
       Intent myIntent = new Intent(view.getContext(), yehihovittale.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 4) { 
       Intent myIntent = new Intent(view.getContext(), lavathavthi.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 5) { 
       Intent myIntent = new Intent(view.getContext(), durgedurgat.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 6) { 
       Intent myIntent = new Intent(view.getContext(), nyanraja.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 7) { 
       Intent myIntent = new Intent(view.getContext(), bolya.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 8) { 
       Intent myIntent = new Intent(view.getContext(), vovalo.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 9) { 
       Intent myIntent = new Intent(view.getContext(), mangesha.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 10) { 
       Intent myIntent = new Intent(view.getContext(), alaganraya.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 11) { 
       Intent myIntent = new Intent(view.getContext(), shendorlal.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 12) { 
       Intent myIntent = new Intent(view.getContext(), ekdanta.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 13) { 
       Intent myIntent = new Intent(view.getContext(), karpurgaura.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 14) { 
       Intent myIntent = new Intent(view.getContext(), heygajavadana.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 15) { 
       Intent myIntent = new Intent(view.getContext(), prathmeshvara.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 16) { 
       Intent myIntent = new Intent(view.getContext(), sainatha.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 17) { 
       Intent myIntent = new Intent(view.getContext(), satyanarayan.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 18) { 
       Intent myIntent = new Intent(view.getContext(), jaidevijaidevi.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 19) { 
       Intent myIntent = new Intent(view.getContext(),omjaimahalakshmi.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 20) { 
       Intent myIntent = new Intent(view.getContext(), maitohaarti.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 21) { 
       Intent myIntent = new Intent(view.getContext(), danyadanyaho.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 22) { 
       Intent myIntent = new Intent(view.getContext(), sukhartakidukharta.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 23) { 
       Intent myIntent = new Intent(view.getContext(), omjaijagdish.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 24) { 
       Intent myIntent = new Intent(view.getContext(), heygaurigajanana.class); 
       startActivityForResult(myIntent, 0); 
      } 
      if (position == 25) { 
       Intent myIntent = new Intent(view.getContext(), ghalinlotangan.class); 
       startActivityForResult(myIntent, 0); 
      } 
     } 
    }); 

} 
class MyCustomAdapter extends BaseAdapter 
{ 
    String[] data_text; 
    int[] data_image; 
    MyCustomAdapter() 
    { 

    } 

    MyCustomAdapter(String[] names, int[] imageid) 
    { 
     data_text = names; 
     data_image = imageid; 
    } 
    MyCustomAdapter(ArrayList<String> names, ArrayList<Integer> imageid) 
    { 
     data_text = new String[names.size()]; 
     data_image = new int[imageid.size()]; 
     for(int i=0;i<names.size();i++) 
     { 
      data_text[i] = names.get(i); 
      data_image[i] = imageid.get(i); 
     } 
    } 
    public int getCount() 
    { 
     return data_text.length; 
    } 
    public String getItem(int position) 
    { 
     return null; 
    } 
    public long getItemId(int position) 
    { 
     return position; 
    } 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     LayoutInflater inflater = getLayoutInflater(); 
     View row; 
     row = inflater.inflate(R.layout.list_layout, parent, false); 
     TextView textview = (TextView) row.findViewById(R.id.textViewName); 
     ImageView imageview = (ImageView) row.findViewById(R.id.imageView); 
     textview.setText(data_text[position]); 
     imageview.setImageResource(data_image[position]); 
     return (row); 
    } 
} 
} 
+0

Sendecode für Onclick Methode –

+0

Prüfung @GaneshKarewad jetzt – Devk

+0

@Devk wie Sie Position überprüfen, daher wird es entsprechend der Position nicht gemäß Ihrer Filteransicht bewegen, so müssen Sie entweder Klasse und ID setzen und ID überprüfen oder Sie können einfache Sache tun, wie Zeichenfolge aus Position und dann überprüfen Sie es in Str g und Anruf Aktivität .. – Vickyexpert

Antwort

1

prüfen Code unten und ein Verfahren für neue Bildschirm erstellen, wie ich weiter unten gezeigt haben,

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     TextView tv = (TextView) view.findViewById(R.id.textViewName); 
     String strSelectedString = tv.getText().toString(); 
     for(int selectedPosition = 0; selectedPosition < names.lenght; selectedPosition++) 
     { 
      if(names[selectedPosition].equalsIgnoreCase(strSelectedString)) 
      { 
       moveToNextActivity(selectedPosition); 
       break; 
      } 
     }  

     } 
    }); 

    public void moveToNextActivity(int position) 
    { 
     if (position == 0) { 
      Intent myIntent = new Intent(view.getContext(), akalp.class); 
      startActivityForResult(myIntent, 0); 
     } 

     if (position == 1) { 
      Intent myIntent = new Intent(view.getContext(), Sukharta.class); 
      startActivityForResult(myIntent, 0); 
     } 

     if (position == 2) { 
      Intent myIntent = new Intent(view.getContext(), gajananashriganraya.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 3) { 
      Intent myIntent = new Intent(view.getContext(), yehihovittale.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 4) { 
      Intent myIntent = new Intent(view.getContext(), lavathavthi.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 5) { 
      Intent myIntent = new Intent(view.getContext(), durgedurgat.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 6) { 
      Intent myIntent = new Intent(view.getContext(), nyanraja.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 7) { 
      Intent myIntent = new Intent(view.getContext(), bolya.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 8) { 
      Intent myIntent = new Intent(view.getContext(), vovalo.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 9) { 
      Intent myIntent = new Intent(view.getContext(), mangesha.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 10) { 
      Intent myIntent = new Intent(view.getContext(), alaganraya.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 11) { 
      Intent myIntent = new Intent(view.getContext(), shendorlal.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 12) { 
      Intent myIntent = new Intent(view.getContext(), ekdanta.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 13) { 
      Intent myIntent = new Intent(view.getContext(), karpurgaura.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 14) { 
      Intent myIntent = new Intent(view.getContext(), heygajavadana.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 15) { 
      Intent myIntent = new Intent(view.getContext(), prathmeshvara.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 16) { 
      Intent myIntent = new Intent(view.getContext(), sainatha.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 17) { 
      Intent myIntent = new Intent(view.getContext(), satyanarayan.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 18) { 
      Intent myIntent = new Intent(view.getContext(), jaidevijaidevi.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 19) { 
      Intent myIntent = new Intent(view.getContext(),omjaimahalakshmi.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 20) { 
      Intent myIntent = new Intent(view.getContext(), maitohaarti.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 21) { 
      Intent myIntent = new Intent(view.getContext(), danyadanyaho.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 22) { 
      Intent myIntent = new Intent(view.getContext(), sukhartakidukharta.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 23) { 
      Intent myIntent = new Intent(view.getContext(), omjaijagdish.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 24) { 
      Intent myIntent = new Intent(view.getContext(), heygaurigajanana.class); 
      startActivityForResult(myIntent, 0); 
     } 
     if (position == 25) { 
      Intent myIntent = new Intent(view.getContext(), ghalinlotangan.class); 
      startActivityForResult(myIntent, 0); 
     } 
    } 
+0

nice antwort sir aber es funktioniert nur, wenn Benutzer nach vollen Wert suchen, wenn Benutzer Teilnamen eingeben, dann wird es nicht funktionieren –

+0

wird es funktionieren, wie es den Wert der Listenansicht nicht den Wert edittext vergleicht und auch es ist in Haupt überprüfen Array so, was auch immer Benutzer wird es zeigen Ergebnis entsprechend der gewählten Position der Listenansicht – Vickyexpert

+0

@Vickyexpert Was meinst du mit Methode für neue Bildschirm – Devk

0

, was Sie hier tun, eine neue Aktivität auf Position Listelement basiert Start geklickt. Was passiert, wenn die Benutzersuche nach der vertikalen Position geändert wird und Ihr Programm eine Aktivität basierend auf der Position der ursprünglichen Listenansicht startet. Verwenden Sie anstelle von if (position == x) etwas anderes, das auch dann unverändert bleibt, wenn sich Ihre Listenansicht ändert. Sie können durch Code

Object o = lv1.getItemAtPosition(position); 
    ItemDetails obj_itemDetails = (ItemDetails)o; 
    String name =obj_itemDetails.getName(); 

mit Element Details und dann Namen, bevor neue Aktivität vergleichen verwenden wie

if(name.equals(sukharta)){ 
Intent myIntent = new Intent(view.getContext(), Sukharta.class); 
startActivityForResult(myIntent, 0); 
} 

hoffe, dass ich dies helfen wird. samajal nahi tar Parat wichara

+1

, auch wenn der Benutzer सु ..... Der Benutzer sollte die Elemente angezeigt werden, die diesen Buchstaben in seiner Startposition enthalten ... – Devk

+0

In einer Zeile können Sie keine Aktivität aufrufen, indem Sie die Position überprüfen. Dies funktioniert, wenn der Benutzer nicht sucht. Sie müssen mit anderen Eigenschaften wie Name oder was auch immer Sie können überprüfen. –

+0

nach der Suche muss er die Ergebnisse anzeigen, und dann kann der Benutzer das gewünschte Element aus den Suchergebnissen öffnen .... – Devk

0

versuchen

Object o = lv1.getItemAtPosition(position); 
ItemDetails obj_itemDetails = (ItemDetails)o; 
String name =obj_itemDetails.getName(); 
if(name.equals(sukharta)){ 
Intent myIntent = new Intent(view.getContext(), Sukharta.class); 
startActivityForResult(myIntent, 0); 
} 
+0

Ich habe versucht, aber nicht funktioniert – Devk