Comment faire de listFooter pas cliquable

C'est donc l'affaire, j'ai essayé de regarder d'autres threads comme celui-ci ici https://stackoverflow.com/questions/12479909/how-to-make-list-header-and-footer-not-clickable

Mais cela ne fonctionne pas. Je ne peux pas "ne rien faire sur le clic".

  • Quelle est la meilleure façon de convertir d'un RectF à un Rect dans Android?
  • Identificateur de périphérique de l'émulateur Android
  • Android MVP - Comment communiquer entre le présentateur d'activité et le présentateur de fragments
  • Impossible de lancer une application via Android Studio (logcat )
  • Spinner pleine largeur en ActionBar
  • Problèmes de tamponnement avec android.media.MediaPlayer
  • Mais le problème n'est pas de gérer ce qui se passe lorsque la liste est cliquée, c'est que la liste donne des commentaires comme si elle avait été cliquée (IE s'allume) et je ne veux pas cela.

    Je ne comprends pas pourquoi la partie ci-dessous ne fonctionne pas (IE est toujours sélectionnable / clickable)

    ViewGroup footer = (ViewGroup)inflater.inflate(R.layout.listview_footer_row, null, false);//This is not working as it should listView.addFooterView(footer); 

    Quelqu'un a une idée de pourquoi mon pied de page est-il cliquable / sélectionnable malgré l'ajout de la fausse déclaration à la méthode?

    Voici mon code

     import java.util.ArrayList; import android.content.Intent; import android.annotation.SuppressLint; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.ListView; public class PortfolioFragMent extends Fragment{ private ListView listView; private Button goButton; private String[] listheader = {"Idag","Senaste","Antal","Avkastning %","Avkastning","Tot Värde"}; private static ShareHoldingAdapter adapter; private int totalElemInlist = listheader.length; private int currentelemInList=0; private ArrayList<ShareHolding> allShareHoldings = new ArrayList<ShareHolding>(); private Button buyButton; @SuppressLint("NewApi") public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @SuppressLint({ "NewApi", "NewApi" }) @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ allShareHoldings = Portfolio.getPortfolio().getAllShareHoldings(); super.onCreate(savedInstanceState); View view = inflater.inflate(R.layout.portfolioframe, container, false); listView = (ListView)view.findViewById(R.id.listView1); String[] array = new String[] {"one", "two", "three"}; /**********************************/ adapter = new ShareHoldingAdapter(getActivity(), R.layout.listview_item_row, allShareHoldings); /***********************************/ ViewGroup header = (ViewGroup)inflater.inflate(R.layout.listview_header_row, null, false); ViewGroup footer = (ViewGroup)inflater.inflate(R.layout.listview_footer_row, null, false);//This is not working as it should listView.addHeaderView(header); listView.addFooterView(footer); goButton = (Button)view.findViewById(R.id.testButton); goButton.setText(listheader[currentelemInList]); listView.setAdapter(adapter); goButton.setOnClickListener(new OnClickListener() { public void onClick(View view) { String buttonPressed = (String) ((Button) view).getText(); currentelemInList++; if(currentelemInList>=totalElemInlist){ currentelemInList=0; } adapter.setButtonPressed(currentelemInList); goButton.setText(listheader[currentelemInList]); } }); listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) { /* * Have to catch Nullpointer exception here since I have two elements in list plus 1 header and 1 footer. * When I click the footer I sent the number 3 to my next intent (4-1). But I don't want the footer to fire on click at all */ if(position<Portfolio.getPortfolio().count()){//Just to check that I havn't clicked listFooter. System.out.println("Klicka i listan"); Intent intent = new Intent(getActivity().getApplicationContext(), DetailShareHoldingActivity.class); intent.putExtra("new_variable_name","value"); intent.putExtra("bookPositionInList",(position-1));//Just so that the top of the list is not clicked System.out.println(position); startActivity(intent); } } }); buyButton = (Button)view.findViewById(R.id.buyNewShares); buyButton.setOnClickListener(new OnClickListener() {public void onClick(View view) { buyShares(); }}); return view; } @SuppressLint({ "NewApi", "NewApi" }) private void buyShares(){ System.out.println("Köpt tryckt"); Intent intent = new Intent(getActivity().getApplicationContext(), BuyNewSharesActivity.class); startActivity(intent); } @SuppressLint({ "NewApi", "NewApi" }) public void onListItemClick(ListView l, View v, int position, long id) { System.out.println("Klicka i listan"); Intent intent = new Intent(getActivity().getApplicationContext(), DetailShareHoldingActivity.class); intent.putExtra("new_variable_name","value"); intent.putExtra("bookPositionInList",position); startActivity(intent); } public static ShareHoldingAdapter getPortfolioFragmentShareHoldingAdapter(){ return adapter; } } 

    Et voici mon listview_footer_row.xml fichier

     <?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" > <TableLayout android:id="@+id/book_detailTable" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="top" android:layout_weight="1" android:paddingTop="0dip" > <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="top" android:paddingTop="0dip" > <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:gravity="left" android:text="Namn" android:textColor="#ababab" android:textSize="25dip" /> </TableRow> </TableLayout> </LinearLayout> 

  • MediaPlayer setDataSource a échoué avec status = 0x80000000 pour Ringtone set by filepath on 2.3.4
  • Comment désactiver les pancrumps dans Android-Studio?
  • UnsupportedMethodException Android Studio 2.2
  • Comment convertir Writer en chaîne
  • Détecter l'adresse IP wifi sur Android?
  • Devrais-je utiliser getApplicationContext ou Activity.this dans une AsyncTask longue durée
  • One Solution collect form web for “Comment faire de listFooter pas cliquable”

    à la place d'utiliser

     addFooterView(v) 

    utilisation

     List.addFooterView(v, data, isSelectable); 

    Et définir isselectable = false

     List.addFooterView(v, null,false); 

    Afin que votre footerView ne soit plus sélectionnable

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.