我在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();
}
});
}
}
答案 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作为该适配器内的视图。