Android ListView onTouch在单击时不工作
我有这个类和XMLAndroid 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
公共类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();
}
});
}
}