2012-02-15 80 views
1

我想在搜索參數無效時使用吐司消息。說,我想顯示敬酒消息「無效搜索」關於使用吐司消息的說明

這裏是我的示例代碼,

**Database.java** 

    package samples.employeephone; 

    import android.content.ContentValues; 
    import android.content.Context; 
    import android.database.sqlite.SQLiteDatabase; 
    import android.database.sqlite.SQLiteOpenHelper; 

    public class Database extends SQLiteOpenHelper { 

     public static final String DATABASE_NAME = "employee_directory"; 

     public Database(Context context) { 
      super(context, DATABASE_NAME, null, 1); 
     } 

     @Override 
     public void onCreate(SQLiteDatabase db) { 
      String sql = "CREATE TABLE IF NOT EXISTS employee (" + 
          "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
          "firstName TEXT, " + 
          "lastName TEXT, " + 
          "title TEXT, " + 
          "officePhone TEXT, " + 
          "cellPhone TEXT, " + 
          "email TEXT, " + 
          "managerId INTEGER)"; 
      db.execSQL(sql); 

      ContentValues values = new ContentValues(); 

      values.put("firstName", "xyz"); 
      values.put("lastName", "abc"); 
      values.put("title", "PL"); 
      values.put("officePhone", "123456"); 
      values.put("cellPhone", "123456"); 
      values.put("email", "[email protected]"); 
      db.insert("employee", "lastName", values); 

      values.put("firstName", "eeee"); 
      values.put("lastName", "aaaa"); 
      values.put("title", "PM"); 
      values.put("officePhone", "234576"); 
      values.put("cellPhone", "2344556"); 
      values.put("email", "[email protected]"); 
      values.put("managerId", "1"); 
      db.insert("employee", "lastName", values); 

      values.put("firstName", "ash"); 
      values.put("lastName", "l"); 
      values.put("title", "POC"); 
      values.put("officePhone", "454454"); 
      values.put("cellPhone", "5454646"); 
      values.put("email", "[email protected]"); 
      values.put("managerId", "1"); 
      db.insert("employee", "lastName", values); 

      values.put("firstName", "ddd"); 
      values.put("lastName", "yxv"); 
      values.put("title", "AS"); 
      values.put("officePhone", "654545"); 
      values.put("cellPhone", "5454545"); 
      values.put("email", "[email protected]"); 
      values.put("managerId", "2"); 
      db.insert("employee", "lastName", values); 

      values.put("firstName", "din"); 
      values.put("lastName", "sss"); 
      values.put("title", "ers"); 
      values.put("officePhone", "25545"); 
      values.put("cellPhone", "65454"); 
      values.put("email", "[email protected]"); 
      values.put("managerId", "2"); 
      db.insert("employee", "lastName", values); 

      values.put("firstName", "sis"); 
      values.put("lastName", "and"); 
      values.put("title", "VP"); 
      values.put("officePhone", "878788"); 
      values.put("cellPhone", "88787"); 
      values.put("email", "[email protected]"); 
      values.put("managerId", "2"); 
      db.insert("employee", "lastName", values); 

     } 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
      db.execSQL("DROP TABLE IF EXISTS employees"); 
      onCreate(db); 
     } 

    } 

**PhonebookActivity.java** 

package samples.employeephone; 

//import samples.employeedirectory.R; 
import android.app.Activity; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 

public class PhonebookActivity extends Activity { 
    protected EditText searchText; 
    protected SQLiteDatabase db; 
    protected Cursor cursor; 
    protected ListAdapter adapter; 
    protected ListView employeeList; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     db = (new Database(this)).getWritableDatabase(); 
     searchText = (EditText) findViewById (R.id.searchText); 
     employeeList = (ListView) findViewById (R.id.list); 
    } 

    public void search(View view) { 
     // || is the concatenation operation in SQLite 
     cursor = db.rawQuery("SELECT _id, firstName, lastName, title FROM employee WHERE firstName || ' ' || lastName LIKE ?", 
         new String[]{"%" + searchText.getText().toString() + "%"}); 
     adapter = new SimpleCursorAdapter(
       this, 
       R.layout.employee_list_item, 
       cursor, 
       new String[] {"firstName", "lastName", "title"}, 
       new int[] {R.id.firstName, R.id.lastName, R.id.title}); 
     employeeList.setAdapter(adapter); 
    } 

} 

and my xml files are, 

**main.xml** 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <EditText 
      android:id="@+id/searchText" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 

     <Button 
      android:id="@+id/searchButton" 
      android:text="Search" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="search"/> 

    </LinearLayout> 

    <ListView 
     android:id="@+id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 

</LinearLayout> 

**employee_list_item.xml** 

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="8px"> 

    <TextView 
     android:id="@+id/firstName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

    <TextView 
     android:id="@+id/lastName" 
     android:layout_marginLeft="6px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/firstName"/> 

    <TextView 
     android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/firstName"/> 

</RelativeLayout> 

現在,我的搜索,如果輸入的名稱爲無效時,我想表明它在吐司消息,所以如何使用它在這裏,

希望你的善舉,因爲我是這個平臺的新手。

+2

那麼,在您的代碼中找不到與您的問題相關的任何內容。 Toast應該創建在哪裏? – Egor 2012-02-15 10:29:11

+0

嗨,在 values.put(「firstName」,「xyz」);如果我輸入這個說你好這是不可用然後通過一個吐司味精顯示一個錯誤....如果(firstName ==「xyz」)它顯示有效的信息其他應該顯示一個吐司味「無效搜索」 – mahi 2012-02-15 10:32:43

+0

好的,那麼當然你應該使用if-else子句。 – Egor 2012-02-15 10:36:16

回答

0

如果我正確理解你的要求,你想是這樣你的數據庫查詢後:

if (cursor.getCount()==0) { 
    Context context = getApplicationContext(); 
    CharSequence text = "Invalid search"; 
    int duration = Toast.LENGTH_SHORT; 

    Toast toast = Toast.makeText(context, text, duration); 
    toast.show(); 
} else 
{ 
    ... update your view .... 
} 
1

在你的搜索(查看視圖)的方法,只是初始化適配器之前,檢查是否光標計數爲0。如果是,請執行敬酒。

Toast.makeText(getContext(), "Invalid search", Toast.LENGTH_SHORT).show();