【发布时间】:2016-03-23 03:02:33
【问题描述】:
来自 MainActivity:
public class MainActivity extends ListActivity implements AdapterView.OnItemLongClickListener {
private DataSourceSql mDataSourceSql;
protected ArrayList<String> mProfileNames;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDataSourceSql = new DataSourceSql(MainActivity.this);
mNames = new ArrayList<String>();
//this part here
ListView lv = (ListView) findViewById(android.R.id.list);
lv.setLongClickable(true);
}
在这种情况下,ListView 的 id 在 XML 中设置为 android:id="@android:id/list"。
然后在同一个活动中:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Toast.makeText(this, mNames.get(position), Toast.LENGTH_SHORT).show();
}
@Override
public boolean onItemLongClick(AdapterView<?> l, View v, final int position, long id) {
Toast.makeText(this, "long clicked: " + mNames.get(position), Toast.LENGTH_LONG).show();
return true;
}
但是当我长按列表中的一个项目时,唯一触发的是onListItemClick。我从来没有通过长按收到消息。
【问题讨论】:
-
我假设长按 = 按住(我希望能够在列表中按住一个项目并获得更多选项)
-
您需要致电
lv.setOnLongClickListener(this)。 -
@MikeM。我的回答是错误的/不好的做法吗?
标签: android android-studio onclicklistener onitemclicklistener onitemlongclicklistener