2012-01-07 3 views
0

ユーザーがそのボタンを長押ししたときに、名前、色、および日付を割り当てるブランクのボタンがあります。私はいくつかの指導をお願いします。他のメニューを呼び出すコンテキストメニュー

  1. ContextMenuから始めるのは正しいことですか?
  2. ContextMenuから、他のポップアップメニュー を名前のEditTextビュー、日付の日付ピッカー、 のような色のピッカーで呼び出すことはできますか?

コンテキストメニューからのこの種のサブメニュー呼び出しに関するガイダンスは高く評価されます。または、ボタンに名前、色、日付を割り当てるという誤った考え方がある場合は、別の方法を提案してください。

ありがとうございます。ボタンの

答えて

0

限り、あなたはメニューリソースを作成する必要がありますコンテキストメニューを作成するために、そして、あなたがする必要があります。すべてはこの

down.setOnLongClickListener(new OnLongClickListener() { 
    @Override 
    public boolean onLongClick(View v) { 
     // TODO Auto-generated method stub 
     return true; 
    } 
}); 

でクリックします。

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@+id/new_game" 
     android:icon="@drawable/ic_new_game" 
     android:title="@string/new_game" /> 
<item android:id="@+id/help" 
     android:icon="@drawable/ic_help" 
     android:title="@string/help" /> 
</menu> 

は、その後、あなたの活動にこれは、あなたが今、すべてのあなたを選択した項目キャプチャし、それ

@Override 
public boolean onContextItemSelected(MenuItem item) { 
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
switch (item.getItemId()) { 
case R.id.edit: 
editNote(info.id); 
return true; 
case R.id.delete: 
deleteNote(info.id); 
return true; 
default: 
return super.onContextItemSelected(item); 
} 
} 

に応じて行動する方法です

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
          ContextMenuInfo menuInfo) { 
super.onCreateContextMenu(menu, v, menuInfo); 
MenuInflater inflater = getMenuInflater(); 
inflater.inflate(R.menu.context_menu, menu); 
} 

あなたのコンテキストメニューこのメソッドをオーバーライドして膨らませますこのような長いプレスでコンテキストメニューのボタンを登録するのですか?

registerForContextMenu(down); //Your button 

EDIT:ちょうどdialogDateピッカーを作成し、コンテキストメニューのswitch文で

showDialog(DATE_DIALOG_ID); 

を追加し、日付ピッカーを表示するには...ここで

あなたは日付ピッカーダイアログ

を作成する方法であります
private TextView mDateDisplay; 
private Button mPickDate; 
private int mYear; 
private int mMonth; 
private int mDay; 

static final int DATE_DIALOG_ID = 0; 
// get the current date 
    final Calendar c = Calendar.getInstance(); 
    mYear = c.get(Calendar.YEAR); 
    mMonth = c.get(Calendar.MONTH); 
    mDay = c.get(Calendar.DAY_OF_MONTH); 

// the callback received when the user "sets" the date in the dialog 
private DatePickerDialog.OnDateSetListener mDateSetListener = 
     new DatePickerDialog.OnDateSetListener() { 

      public void onDateSet(DatePicker view, int year, 
            int monthOfYear, int dayOfMonth) { 
       mYear = year; 
       mMonth = monthOfYear; 
       mDay = dayOfMonth; 

      } 
     }; 

@Override 
protected Dialog onCreateDialog(int id) { 
switch (id) { 
case DATE_DIALOG_ID: 
    return new DatePickerDialog(this, 
       mDateSetListener, 
       mYear, mMonth, mDay); 
} 
return null; 

}

+0

ありがとう@ coder_For_Life22。コンテキストアイテムの1つが選択されているときに、たとえば日付ピッカーを呼び出す方法のスケルトンコードを表示できますか? – aez

+0

確かに私の編集を確認してください。 –

+0

よかった、ありがとう。私はこの仕組みがどういうものかは分かりませんが、私の質問が良いものだと思うなら、親切に投票してください。 – aez

関連する問題