Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ListView onTouch在单击时不工作_Android_Listview_Ontouchlistener - Fatal编程技术网

Android ListView onTouch在单击时不工作

Android ListView onTouch在单击时不工作,android,listview,ontouchlistener,Android,Listview,Ontouchlistener,我有这个类和XML 公共类MyClass扩展SherlockListActivity在TouchListener上实现 <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="0dp" android:smoothScrollbar="true" android:cacheColorH

我有这个类和XML

公共类MyClass扩展SherlockListActivity在TouchListener上实现

<ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:smoothScrollbar="true"
        android:cacheColorHint="#fff"
        android:fastScrollEnabled="false" 
        android:clickable="true"
        android:layout_weight="1"
        android:dividerHeight="1sp" /> 
获取任何日志的唯一方法是(或操作)拖动。我试过点击和长时间点击,但都不起作用。你知道如何解决这个问题并保持接触吗

编辑: 列表视图使用不同的ArrayAdapter实现(我自己的):

公共类ContentDisplayListAdapter扩展了ArrayAdapter{
私人清单项目;
私有数据内容信息o;
公共ContentDisplayListAdapter(上下文上下文、int textViewResourceId、列表项){
super(上下文、textViewResourceId、项);
这个项目=项目;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图v=转换视图;
如果(v==null){
LayoutInflater vi=(LayoutInflater)getContext().getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
v=vi.充气(R.布局.内容显示行,空);
}
o=项目。获取(位置);
如果(o!=null){
TextView内容=(TextView)v.findViewById(R.id.content);
TextView数据编号=(TextView)v.findviewbyd(R.id.title\u编号);
ContentDisplayAdapter.updateTitles(getContext(),o,content,DataNo,items.size());
}
返回v;
}
}

使用setOnItemClickListener()这种方式列表也可以单击,无论单击的项目是什么,都可以执行您的工作,因为它可以被重新命名。单击列表时,列表也可以被单击。

使用setOnItemClickListener()这种方式列表也可以被单击,无论单击的项目是什么,都可以执行您的工作

listView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//ListView单击的项目索引
int itemPosition=位置;
//ListView单击的项目值
String itemValue=(String)listView.getItemAtPosition(position);
//显示警惕
Toast.makeText(getApplicationContext(),
位置:“+itemPosition+”列表项:“+itemValue,Toast.LENGTH\u LONG)
.show();
}
});

这将对您有效:)

listView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//ListView单击的项目索引
int itemPosition=位置;
//ListView单击的项目值
String itemValue=(String)listView.getItemAtPosition(position);
//显示警惕
Toast.makeText(getApplicationContext(),
位置:“+itemPosition+”列表项:“+itemValue,Toast.LENGTH\u LONG)
.show();
}
});

如果您不关心对listview中的任何元素或listview本身的单击,那么您可以使用click listener进行此操作。像下面这样的

首先,我们需要一个子类
OnItemClickListener
,它只在双击时触发:

public abstract class DoubleClickListener implements OnItemClickListener {
    // time between clicks before it is no longer considered a double click
    private static final long DOUBLE_CLICK_TIME_DELTA = 200;
    private long mLastClickTime = 0;

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // check if this click occurred shortly after a previous click
        long clickTime = System.currentTimeMillis();
        if (clickTime - mLastClickTime < DOUBLE_CLICK_TIME_DELTA) {
            onDoubleClick(view);
        }

        // save the time of this click for comparing against future clicks
        mLastClickTime = clickTime;
    }


    // override this function with desired behavior
    public abstract void onDoubleClick(View view);
}

如果您不关心对listview中的任何元素或listview本身的单击,那么您可以使用click listener进行此操作。像下面这样的

首先,我们需要一个子类
OnItemClickListener
,它只在双击时触发:

public abstract class DoubleClickListener implements OnItemClickListener {
    // time between clicks before it is no longer considered a double click
    private static final long DOUBLE_CLICK_TIME_DELTA = 200;
    private long mLastClickTime = 0;

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // check if this click occurred shortly after a previous click
        long clickTime = System.currentTimeMillis();
        if (clickTime - mLastClickTime < DOUBLE_CLICK_TIME_DELTA) {
            onDoubleClick(view);
        }

        // save the time of this click for comparing against future clicks
        mLastClickTime = clickTime;
    }


    // override this function with desired behavior
    public abstract void onDoubleClick(View view);
}

这是工作代码..使用它..干杯..:)

公共类ListViewAndroidExample扩展活动{
列表视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u list\u view\u android\u示例);
//从xml获取ListView对象
listView=(listView)findViewById(R.id.list);
//要在ListView中显示的已定义数组值
字符串[]值=新字符串[]{“Android列表视图”,
“适配器实现”,
“Android中的简单列表视图”,
“创建列表视图”,
“Android示例”,
“列表查看源代码”,
“列表视图阵列适配器”,
“Android示例列表视图”
};
//定义一个新适配器
//第一个参数-上下文
//第二个参数-行的布局
//第三个参数-写入数据的TextView的ID
//第四,数据数组
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,android.R.id.text1,值);
//将适配器分配给ListView
setAdapter(适配器);
//ListView项目单击侦听器
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//ListView单击的项目索引
int itemPosition=位置;
//ListView单击的项目值
String itemValue=(String)listView.getItemAtPosition(position);
listView.setOnItemClickListener(new OnItemClickListener() {

                      @Override
                      public void onItemClick(AdapterView<?> parent, View view,
                         int position, long id) {

                       // ListView Clicked item index
                       int itemPosition     = position;

                       // ListView Clicked item value
                       String  itemValue    = (String) listView.getItemAtPosition(position);

                        // Show Alert 
                        Toast.makeText(getApplicationContext(),
                          "Position :"+itemPosition+"  ListItem : " +itemValue , Toast.LENGTH_LONG)
                          .show();

                      }

                 });
public abstract class DoubleClickListener implements OnItemClickListener {
    // time between clicks before it is no longer considered a double click
    private static final long DOUBLE_CLICK_TIME_DELTA = 200;
    private long mLastClickTime = 0;

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // check if this click occurred shortly after a previous click
        long clickTime = System.currentTimeMillis();
        if (clickTime - mLastClickTime < DOUBLE_CLICK_TIME_DELTA) {
            onDoubleClick(view);
        }

        // save the time of this click for comparing against future clicks
        mLastClickTime = clickTime;
    }


    // override this function with desired behavior
    public abstract void onDoubleClick(View view);
}
ListView listView = getListView();
listView.setOnItemClickListener(new DoubleClickListener() {
    @Override
    public void onDoubleClick(View v) {
        // TODO - handle our double click here!
    }
});
    public class ListViewAndroidExample extends Activity { 
ListView listView ; 
@Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_list_view_android_example);

            // Get ListView object from xml
            listView = (ListView) findViewById(R.id.list);

            // Defined Array values to show in ListView
            String[] values = new String[] { "Android List View", 
                                             "Adapter implementation",
                                             "Simple List View In Android",
                                             "Create List View Android", 
                                             "Android Example", 
                                             "List View Source Code", 
                                             "List View Array Adapter", 
                                             "Android Example List View" 
                                            };

            // Define a new Adapter
            // First parameter - Context
            // Second parameter - Layout for the row
            // Third parameter - ID of the TextView to which the data is written
            // Forth - the Array of data

            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
              android.R.layout.simple_list_item_1, android.R.id.text1, values);


            // Assign adapter to ListView
            listView.setAdapter(adapter); 

            // ListView Item Click Listener
            listView.setOnItemClickListener(new OnItemClickListener() {

                  @Override
                  public void onItemClick(AdapterView<?> parent, View view,
                     int position, long id) {

                   // ListView Clicked item index
                   int itemPosition     = position;

                   // ListView Clicked item value
                   String  itemValue    = (String) listView.getItemAtPosition(position);

                    // Show Alert 
                    Toast.makeText(getApplicationContext(),
                      "Position :"+itemPosition+"  ListItem : " +itemValue , Toast.LENGTH_LONG)
                      .show();

                  }

             }); 
        }

    }