2013-01-13 4 views
0

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




} 

}

+1

Postez votre logcat. – Kanth

Répondre

1

Dans votre onCreate vous devez changer

searchButton = (Button) findViewById(R.id.btnSearch); 

avec

searchButton = (Button) findViewById(R.id.btnSearchName);