37

ListViewデータを表示する必要があるだけです。
だから私はそれをクリック可能にしたくありません。
まず、XML リストビューを次のように変更してみました。

<ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:clickable="false" >

しかし、うまくいきませんでした。
私の問題を解決するために、コードで設定しました:

  list.setSelector(android.R.color.transparent); 

しかし、これ以上の解決策がないとは信じられません。何か案が?

4

13 に答える 13

1

簡単な方法:

listView.setSelector(android.R.color.transparent);
于 2015-06-04T17:31:25.957 に答える
1
android:focusable="true"

リストビュー内のアイテムのいずれかに対して、リストビューはクリックできなくなりました

于 2013-07-30T11:17:37.823 に答える
1

あなたが使用することができます

yourListView.setOnItemClickListener(null);
于 2014-10-14T23:50:41.957 に答える
1

android:enabled="false" をリストビューに設定するだけで、トリックが実行されます..メソッドをオーバーライドし続ける必要がない理由..

于 2015-04-06T07:55:05.223 に答える
0

このコードを試してください

Adapter.getView () 内

i.setOnClickListener( null );
i.setLongClickable( false );
i.setClickable( false );
于 2013-07-30T11:16:44.590 に答える
0

実際、 @override isEnabled() と setOnClickListener(null) setClickable(false) setLongClickable(false) が機能していません。オーバーライド performItemClick で解決します

@Override
public boolean performItemClick(View view, int position, long id) {
 if(!clickAble){
     return false;
 }
    return super.performItemClick(view,position,id);
}
于 2015-04-25T02:33:09.827 に答える
-1

データを表示するだけでよいこの ListView があります。だから私はそれをクリック可能にしたくありません。

私は自分のプロジェクトの 1 つでこれを行いましたが、以下のサンプルは正常に動作します。

基本的に、必要なものは次のとおりです。

  • データ ソース (ArrayList など)
  • ListView ウィジェット
  • データ ソースを ListView にバインドするための ArrayAdapter


MainActivity.java

package com.sample.listview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.widget.ArrayAdapter;
import android.widget.ListView;

    public class SecondActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

         // data source
         String[] arrayData = {"Debian", "Ubuntu", "Kali", "Mint"};

         // ListView Widget from a Layout
         ListView listView = (ListView) findViewById(R.id.mainListView);

         // an ArrayAdapter (using a layout as model for displaying the array items)
         ArrayAdapter aa = new ArrayAdapter<String>(this, R.layout.main_list_item_layout, arrayData);

         // binding the ArrayAdapter with the ListView Widget
         listView.setAdapter(aa);
    }
}


activity_main.xml
---> ListView ウィジェットが layout_width と layout_height に wrap_content を使用していることを確認してください

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.sample.listview.MainActivity">


    <ListView
        android:id="@+id/mainListView"
        android:layout_width="wrap_content"  <---- HERE
        android:layout_height="wrap_content" <---- HERE
        />

</LinearLayout>


main_list_item_layout.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainListItem"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textColor="#ff0000"
    android:textSize="20sp"
    >

</TextView>



それだけです: ListView はクリックできず、画面にデータを表示するだけです。

于 2016-06-30T16:13:40.473 に答える