J'ai une mise en page XML qui contient un EditText dans lequel un utilisateur peut taper un nom de personne, puis un bouton qui va chercher dans la base de données et afficher les résultats dans le ListView juste en dessous.ListView avec bouton et EditText
Je reçois des erreurs sur le OnClickListener:
searchButton.setOnClickListener(this);
J'ai lu que dans le besoin d'utiliser une autre importation « OnClickListener »? Mais j'ai changé cela et il me donne toujours une erreur NullPointerException.
Quelqu'un peut-il me dire comment faire fonctionner cette mise en page?
Voilà ma mise en page XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/inputSearchName"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/txtsearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Type Name To Search:"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/inputName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/btnSearchName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Search" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
Ma recherche Classe:
package com.example.flybase2;
import android.app.Activity;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.View;
// Imported OnClickListener
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
//Extends ListActivity, Implements OnClickListener. Above Import for OnClickListener in imports.
public class search extends ListActivity implements OnClickListener {
Button searchButton;
EditText searchName;
ListView searchedListResults;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
searchButton = (Button) findViewById(R.id.btnSearch);
searchName = (EditText) findViewById(R.id.inputName);
//ERROR: OnClickListener is causing a crash.
searchButton.setOnClickListener(this);
}
@Override
public void onClick(View clickedSearchButton) {
String searchedName = searchName.getText().toString();
searchedListResults = (ListView)findViewById(android.R.id.list);
DBHandler DBsearchRef = new DBHandler(this, null, null);
DBHandler search = new DBHandler(this, null, null);
search.open();
Cursor cursor = search.searchOnName(searchedName);
startManagingCursor(cursor);
@SuppressWarnings("static-access")
String [] from = new String [] {DBsearchRef.KEY_NAME, DBsearchRef.KEY_TEL, DBsearchRef.KEY_EMAIL, DBsearchRef.KEY_COMMENTS};
int [] to = new int [] {R.id.txtNameList, R.id.txtTelList, R.id.txtEmailList, R.id.txtCommentsList};
@SuppressWarnings("deprecation")
SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this, R.layout.search, cursor, from, to);
searchedListResults.setAdapter(cursorAdapter);
}
}
Postez votre logcat. – Kanth