2012-02-08 5 views
0

Je suis entré dans un problème étrange, je ne peux pas cliquer sur ma liste ... Je l'ai implémenté de la même manière que je le faisais auparavant, mais ça ne marche pas.Activer ListView Sélection - Android

listTags.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       listTags.setSelection(position); 
       Toast.makeText(getParent(), "hello", Toast.LENGTH_LONG).show(); 
      } 
     }); 

J'étends la classe d'activité

et entendre comment je déclare listview

listTags = (ListView) viewToLoad.findViewById(R.id.listPack); 

entendre est ce que je l'ai fait dans xml

<ListView 
     android:id="@+id/listPack" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_marginBottom="5dip" 
     android:layout_marginLeft="5dip" 
     android:layout_marginRight="5dip" 
     android:layout_weight="1" > 
    </ListView> 

Cela est tout aussi normal partout, je ne peux pas comprendre ce qui est faux, aidez-moi s'il vous plaît avec ceci.

Merci

Entendez le code pour adaptateur

adapter = new KeywordAdapter(getApplicationContext(), id, 
       getLNApplication().getKeyworddetail()); 
listTags.setAdapter(adapter); 

Ma classe KeywordAdapter

public class KeywordAdapter extends BaseAdapter { 

    public KeywordAdapter(Context context, int id, ArrayList<ArrayList<Keyword>> keywordList) { 
     this.context = context; 
     if (id >= keywordList.size()) { 
      keyWordList = new ArrayList<Keyword>(); 
     } else 
      keyWordList = keywordList.get(id); 
    } 

    // Implemented methods for BaseAdpter 

    public class ViewHolder { 
     TextView tagName; 
     //.... more code 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder; 
     View view = convertView; 

     if (view == null) { 
      LayoutInflater inflater = (LayoutInflater) context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      view = inflater.inflate(R.layout.package_tag_details, null, true); 
      holder = new ViewHolder(); 
      holder.tagName = (TextView) view.findViewById(R.id.tagName); 
      //.... more code 
      holder.layout = (LinearLayout) view 
        .findViewById(R.id.linearLayout1); 
      view.setTag(holder); 
     } else { 
      holder = (ViewHolder) view.getTag(); 
     } 

     holder.tagName.setText(keyWordList.get(position).getName()); 
     ArrayList<Integer> rank = keyWordList.get(position).getRank(); 


     @SuppressWarnings("unused") 

     holder.tagRank1.setText(rank.get(position)); 


     //.... more code 

     return view; 
    } 

    public void forceReload() { 
     notifyDataSetChanged(); 

    } 
} 
+0

Je pense que votre article de la liste a été sélectionné mais en problème dans le contexte de Toast –

Répondre

1

Quels sont l'élément que vous avez placé dans listView, Faites tous les articles comme android:focusable="false"

+0

vous voulez dire l'article qui est dans la coutume voir –

+0

yeh l'article dans la vue custum..suppose ur en utilisant TextView faire android: focusable = "false" – AndroidDev

+0

ok laissez-moi essayer que ... –

1

changer juste ci-dessous dans votre code.

listTags = (ListView)findViewById(R.id.listPack); 

Etes-vous sûr android: layout_width supporte "match_parent"? S'il vous plaît regardez dans la console. Que ceci vous aide.

+0

la liste s'affiche parfaitement, mais ce qui s'est mal passé, je n'ai pas cliquez sur l'événement n'est pas appelé –

0

Je ne vous voyais pas configurer l'adaptateur, c'est-à-dire listTags.setAdapter (?);

Try this code (works for me): 

    // MainActivity 

    public class MainActivity extends Activity { 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      final ListView listTags = (ListView) findViewById(R.id.listPack); 
      listTags.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mStrings)); 
      listTags.setOnItemClickListener(new OnItemClickListener() { 

       @Override 
       public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 
        listTags.setSelection(position); 
    //    Toast.makeText(getParent(), "hello", Toast.LENGTH_LONG).show(); 
       } 
      }); 



     } 


     private String[] mStrings = { 

      "Comte", "Coolea", "Cooleney", "Coquetdale", "Corleggy", "Cornish Pepper", 
      "Cotherstone", "Cotija", "Cottage Cheese", "Cottage Cheese (Australian)", 
      "Cougar Gold", "Coulommiers", "Coverdale", "Crayeux de Roncq", "Cream Cheese", 
      "Cream Havarti", "Crema Agria", "Crema Mexicana", "Creme Fraiche", "Crescenza", 
      "Croghan", "Crottin de Chavignol", "Crottin du Chavignol", "Crowdie", "Crowley", 
      "Cuajada", "Curd", "Cure Nantais", "Curworthy", "Cwmtawe Pecorino", 
      }; 

    // 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" > 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/hello" /> 

     <ListView 
      android:id="@+id/listPack" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_marginBottom="5dip" 
      android:layout_marginLeft="5dip" 
      android:layout_marginRight="5dip" 
      android:layout_weight="1" > 
     </ListView> 

      </LinearLayout> 

    // list_item.xml // layout 

    <?xml version="1.0" encoding="utf-8"?> 
    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="10dp" 
     android:textSize="16sp" > 
    </TextView> 
0

Il y avait un problème avec la vue personnalisée de vue de la liste J'ai utilisé ScrollView horizontal dans la vue j'ai enlevé que et maintenant le problème est résolu

+0

mais si vous avez supprimé android: focusable = "false" de votre autre vue je ne sais pas pense que cela fonctionnera – AndroidDev

+0

non, ça marche ... Je n'ai pas utilisé android: focusable = "false" avant dans n'importe quelle vue de la liste que j'ai utilisé. –

+0

quel type de vue que vous avez à votre avis –

Questions connexes