Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.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
Java android我如何找出在listview中单击了哪个视图_Java_Android_Android Listview_Android Adapter - Fatal编程技术网

Java android我如何找出在listview中单击了哪个视图

Java android我如何找出在listview中单击了哪个视图,java,android,android-listview,android-adapter,Java,Android,Android Listview,Android Adapter,我对android和java相当陌生。我创建了一个我自己的适配器和listView,我想知道如何找出在我的listView中按下了哪个视图或行,以便我可以为选中的行执行特定任务(任务包括向其他活动发送数据和信息) 我认为position变量可能包含所单击行的名称,所以我尝试了它,但当单击一行时,应用程序崩溃 hangarList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Over

我对android和java相当陌生。我创建了一个我自己的适配器和listView,我想知道如何找出在我的listView中按下了哪个视图或行,以便我可以为选中的行执行特定任务(任务包括向其他活动发送数据和信息)

我认为position变量可能包含所单击行的名称,所以我尝试了它,但当单击一行时,应用程序崩溃

        hangarList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

            Toast.makeText(getApplicationContext(), position,Toast.LENGTH_SHORT);

        }
    });
hangarList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共虚线单击(AdapterView AdapterView,视图视图,内部位置,长l){
Toast.makeText(getApplicationContext(),位置,Toast.LENGTH\u SHORT);
}
});

有人能帮忙吗?

可能是位置是一个整数,它需要一个字符串,并且需要在toast上调用show()来查看消息

 hangarList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

            Toast.makeText(getApplicationContext(), position+"",Toast.LENGTH_SHORT).show();

        }
    });
hangarList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共虚线单击(AdapterView AdapterView,视图视图,内部位置,长l){
Toast.makeText(getApplicationContext(),position+“”,Toast.LENGTH_SHORT).show();
}
});

首先,关于查找单击了哪一行,您的思路是正确的

错误在于您使用了
Toast.makeText()
。该方法有两种版本:

  • makeText(上下文、整数剩余、整数持续时间)
  • makeText(上下文、字符序列文本、整数持续时间)
  • 现在在您的vode中,您可以使用
    Toast.makeText(…,position,…)
    调用方法的第一个版本(因为
    position
    是一个整数),但由于
    position
    不是资源id,应用程序崩溃

    因此,您必须使用第二个版本,为此,请传递一个
    CharSequence
    (或字符串)作为第二个参数:
    Toast.makeText(…,position+“”,…)


    顺便说一句,要获取行的实际值,您可以使用hangarList.getItemAtPosition(position)

    列表视图中组成行的视图像数组一样被索引。位置值是按下的行或视图的索引。可以使用“位置”值查找与单击的视图关联的信息

    您的应用程序正在崩溃,因为
    Toast.makeText(Context,int,int)
    的第二个参数需要一个字符串资源id整数。当您将位置指定为id时,它无法找到该字符串资源并引发异常。要显示已单击视图的索引,请尝试:

    hangarList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            Toast.makeText(getApplicationContext(), 
                           "View at position " + position + " clicked.",
                           Toast.LENGTH_SHORT);
        }
    }
    
    hangarList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
    @凌驾
    公共虚线单击(AdapterView AdapterView,视图视图,内部位置,长l){
    Toast.makeText(getApplicationContext(),
    “查看位置”+单击位置+”,
    烤面包片(长/短);
    }
    }
    
    应用程序因您的Toast而崩溃。您应该像使用Toast一样使用Toast

    Toast.makeText(context, text, duration).show();
    
    您可以用如下简单的方式修复它:

    String positionString=Integer.toString(position);
    Toast.makeText(getApplicationContext(), positionString,Toast.LENGTH_SHORT).show();
    
    没有Toast也没有问题。正如您所说,单击了listview的哪一项? 要控制单击哪个项目,可以使用方法的位置变量。
    关于..Omer

    请发布日志猫..显示错误消息。在您的listview上设置onitemclicklistener。