2017-02-18 4 views
1

Ich möchte die Hintergrundfarbe des Listenelements ändern, je nachdem, ob auf das Element geklickt wird oder nicht. Wie kann ich das erreichen? Ich habe versucht, die folgenden:Festlegen der Hintergrundfarbe eines Listenelements, wenn darauf geklickt wird

articleListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 
      // Find the current article that was clicked on 
      Article currentArticle = mAdapter.getItem(position); 

      if (currentArticle.getUrl() != null) { 
       TextView article_TV = (TextView) findViewById(R.id.post_title); 

       if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) 
       { 
        article_TV.setBackgroundColor(getApplicationContext().getColor(R.color.colorItemClicked)); 
       } 
     else 
            article_TV.setBackgroundColor(getResources().getColor(R.color.colorItemClicked)); 
       } 

     } 
    }); 

Update: - Dumme Fehler es war. Wie vorgeschlagen von ak sacha sollte TextView article_TV = (TextView) view.findViewById (R.id.post_title);

+1

tun Sie so. "TextView article_TV = (TextView) view.findViewById (R. id.post_title); –

+0

Es hat gelöst! Dummer Fehler! –

+0

hast du, wie gesagt wurde? –

Antwort

1

Wie von ak sacha vorgeschlagen, können wir es einfach erreichen mit TextView article_TV = (TextView) view.findViewById (R.id.post_title); Das ist, weil wir das in einem Adapter verwenden, also müssen wir die Ansicht innerhalb der Listviewzeile finden. Deshalb verwenden wir view.findviewbyid

Verwandte Themen