Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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列表活动运行不正常_Android_Android Layout_Android Listview - Fatal编程技术网

Android列表活动运行不正常

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"

各位好,, 我有一个小问题,重新命名列表的活动。我想创建一个(1,2,3,4,5)的简单列表,当我点击它们时,会弹出一个祝酒词并说clicked。但是应用程序没有运行。当我删除列表时(扩展活动而不是ListActivity)。应用程序只是简单地运行并显示一个列表。我只想申请istitemClick。希望你能帮忙。下面是xml和java代码

  <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(这个)?是的,我修复了。谢谢你的时间。非常感谢你的帮助。