2012-02-15 5 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

だから?あなたのコードの中にあなたの質問に関連するものは何も見つかりません。トーストはどこに作られるべきですか? – Egor

+0

こんにちは、 のvalues.put( "firstName"、 "xyz");もし私がこれをhelloと入力すると利用できない場合、トーストmsgを介して表示されるようなエラーが発生します....もし(firstName == "xyz")それが有効な情報を表示している場合は、トーストmsgを表示する "無効な検索" – mahi

+0

もちろん、if-else節を使うべきです。 – Egor

答えて

0

私が正しくあなたの要求を理解していれば、あなたはあなたのDBクエリの後にこのような何かをしたい:カーソルのカウントが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

(ビュービュー)メソッドは、ちょうどあなたのアダプタを初期化する前に、確認してください。そうであれば、トーストを行います。

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