Android列表活动运行不正常
各位好,, 我有一个小问题,重新命名列表的活动。我想创建一个(1,2,3,4,5)的简单列表,当我点击它们时,会弹出一个祝酒词并说clicked。但是应用程序没有运行。当我删除列表时(扩展活动而不是ListActivity)。应用程序只是简单地运行并显示一个列表。我只想申请istitemClick。希望你能帮忙。下面是xml和java代码Android列表活动运行不正常,android,android-layout,android-listview,Android,Android Layout,Android Listview,各位好,, 我有一个小问题,重新命名列表的活动。我想创建一个(1,2,3,4,5)的简单列表,当我点击它们时,会弹出一个祝酒词并说clicked。但是应用程序没有运行。当我删除列表时(扩展活动而不是ListActivity)。应用程序只是简单地运行并显示一个列表。我只想申请istitemClick。希望你能帮忙。下面是xml和java代码 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context="com.annotationap.MainActivity$PlaceholderFragment" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="256dp" >
</ListView>
</LinearLayout>
java代码
public class MainActivity extends ListActivity {
private String[] array = {"1", "2" ,"3","4","5"};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView1;
listView1 = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> aa = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, array );
listView1.setAdapter(aa);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Toast.makeText(this,"Clicked" , Toast.LENGTH_LONG).show();
}
}
public类MainActivity扩展了ListActivity{
私有字符串[]数组={“1”、“2”、“3”、“4”、“5”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
列表视图列表视图1;
listView1=(ListView)findViewById(R.id.listView1);
ArrayAdapter aa=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,数组);
listView1.setAdapter(aa);
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
//TODO自动生成的方法存根
super.onListItemClick(左、右、位置、id);
Toast.makeText(这个“点击”,Toast.LENGTH_LONG.show();
}
}
听起来您想在正常的活动中实现一个AdapterView.OnItemClickListener
。在这种情况下,这里有一个简单的例子:
public class MainActivity extends Activity implements OnItemClickListener, OnItemLongClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView) findViewById(R.id.listView1);
list.setOnItemClickListener(this);
list.setOnItemLongClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(this, "Clicked!", Toast.LENGTH_SHORT).show();
}
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(this, "Long clicked!", Toast.LENGTH_SHORT).show();
return true;
}
}
public类MainActivity扩展活动实现OnItemClickListener、OnItemLongClickListener{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView列表=(ListView)findViewById(R.id.listView1);
list.setOnItemClickListener(此);
list.setOnItemLongClickListener(此);
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Toast.makeText(这是“Clicked!”,Toast.LENGTH\u SHORT.show();
}
@凌驾
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
Toast.makeText(这是“长点击!”,Toast.LENGTH\u SHORT.show();
返回true;
}
}
我认为这不是什么大问题,你应该在发布前先搜索,
只需在XML文件中更改listView的id即可
android:id=“@android:id/list”
如果要使用ListActivity,则必须注意listView的ID,您可以更改它,但必须使用ListActivity以外的简单活动。您没有为listView1设置侦听器。在onCreate中,您希望设置如下内容:
listView1.setOnItemClickListener(listener);
但是,有几种方法可以做到这一点:
我总是这样做:
protected void onCreate(Bundle savedInstanceState) {
//Standard onCreate stuff
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) {
//this will run on click.
}
});
创建时受保护的void(Bundle savedInstanceState){
//标准再创造材料
getListView().setOnItemClickListener(新的OnItemClickListener()){
public void onItemClick(AdapterView arg0、视图视图、整型位置、长arg3){
//这将在单击时运行。
}
});
有关侦听器的信息:
谢谢。问题解决了。你能给我一点关于onItemLongClik的指导吗。想对该功能做同样的事情。谢谢长单击不工作。代码运行得很好。但是长单击不工作。@user3194062你有没有打电话给列表。setOnItemLongClickListener(这个)
?是的,我修复了。谢谢你的时间。非常感谢你的帮助。