繁体   English   中英

setOnClickListener android studio

[英]setOnClickListener android studio

我正在通过在线资料在android studio中学习Java

但是我被这个简单的程序卡住了

Android Studio说此代码中有错误,但我看不到它们,这是代码:

package com.acmegames.listadecontatos;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.*;
import android.view.*;
import android.app.*;


public class ListaContatosActivity extends AppCompatActivity {

    ListView lista_contatos;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lista_contatos);

        lista_contatos = (ListView) findViewById(R.id.lista_contatos);

        lista_contatos.setOnClickListener( new AdapterView.OnItemClickListener(){

            @Override

            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                String nome = ((TextView) view).getText().toString();

                AlertDialog.Builder dialogo =  new AlertDialog.Builder(ListaContatosActivity.this);
                dialogo.setTitle("Contato");
                dialogo.setMessage("Contato selecionado: " + nome);
                dialogo.setNeutralButton("Ok", null);
                dialogo.show();

            }

        });
    }
}

setOnItemClickListener更改为setOnClickListener以进行列表视图

像这样将其替换为您在点击项目点击中使用的多数民众赞成在错误

lista_contatos.setOnItemClickListener( new AdapterView.OnItemClickListener(){

        @Override

        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            String nome = ((TextView) view).getText().toString();

            AlertDialog.Builder dialogo =  new AlertDialog.Builder(ListaContatosActivity.this);
            dialogo.setTitle("Contato");
            dialogo.setMessage("Contato selecionado: " + nome);
            dialogo.setNeutralButton("Ok", null);
            dialogo.show();

        }

    });

只需复制并粘贴以下代码

package com.acmegames.listadecontatos;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.*;
import android.view.*;
import android.app.*;


public class ListaContatosActivity extends AppCompatActivity {

    ListView lista_contatos;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lista_contatos);

        lista_contatos = (ListView) findViewById(R.id.lista_contatos);

        lista_contatos.setOnItemClickListener( new AdapterView.OnItemClickListener(){

            @Override

            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                String nome = ((TextView) view).getText().toString();

                AlertDialog.Builder dialogo =  new AlertDialog.Builder(ListaContatosActivity.this);
                dialogo.setTitle("Contato");
                dialogo.setMessage("Contato selecionado: " + nome);
                dialogo.setNeutralButton("Ok", null);
                dialogo.show();

            }

        });
    }
}

您应该使用setOnItemClickListener而不是SetOnClickListener

如果使用setOnclicklistener,则您不应创建新的onItemClickListener。 对于listview,请使用setOnItemListener。 或者,如果您自定义适配器,则可以对适配器内部的视图使用Onclicklistener。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM