setOnClickListener android studio

时间:2016-10-26 17:27:32

标签: java android

我在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();

            }

        });
    }
}

4 个答案:

答案 0 :(得分:2)

setOnClickListener更改为setOnItemClickListener以获取列表视图

答案 1 :(得分:0)

将此替换为您使用点击项目单击即错误

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();

        }

    });

答案 2 :(得分:0)

只需复制并粘贴代码

即可
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

答案 3 :(得分:0)

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