2016-04-12 5 views
1

私はAndroidの初心者です。私はそのようなメインクラスを持っていますアダプタなしのコンテキストメニュー

public class SearchDay extends AppCompatActivity implements View.OnClickListener { 
    private ImageButton insertDate; 
    private Calendar cal; 
    private int day; 
    private int month; 
    private int year; 
    DatabaseHelper db; 
    private Spinner SelectTypeNote; 
    private EditText et; 
    private Button btnSubmitSearchByDay, btnCancelSearchByDay; 
    SimpleCursorAdapter dataAdapter; 
    private static final int REQUEST_CODE = 10; 
    private ListView listViewManagePage; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_search_day); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setTitle("Tìm kiếm theo ngày"); 

     SelectTypeNote = (Spinner) findViewById(R.id.TypeNote_SearchByDay); 
     insertDate = (ImageButton) findViewById(R.id.dateInsertSearchByDay); 
     cal = Calendar.getInstance(); 
     et = (EditText) findViewById(R.id.dateInsertSearchByDay_editText); 
     btnSubmitSearchByDay = (Button) findViewById(R.id.searchByDay); 
     btnCancelSearchByDay = (Button) findViewById(R.id.cancelSearchByDay); 

     db = new DatabaseHelper(this); 

     cal = Calendar.getInstance(); 
     day = cal.get(Calendar.DAY_OF_MONTH); 
     month = cal.get(Calendar.MONTH); 
     year = cal.get(Calendar.YEAR); 
     insertDate.setOnClickListener(this); 

     Bundle extras = getIntent().getExtras(); 
     final String idUser = extras.getString("IdUser"); 
     setBtnSubmitNoteSearchByDay(); 
     setBtnCancelNoteSearchByDay(idUser); 
//  registerForContextMenu(listViewManagePage); 
     listViewManagePage = (ListView) findViewById(R.id.listView_SearchByDay); 
     listViewManagePage.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Toast.makeText(SearchDay.this, "Thanh cong", Toast.LENGTH_SHORT).show(); 
       registerForContextMenu(listViewManagePage); 
      } 

     }); 
    } 
} 

リストビューで項目をクリックすると、それは成功です。しかし、私はコンテキストメニューを開く方法を知っていないが、アダプタを使用しないでください。 アダプタなしでコンテキストメニューを作成する方法を教えてください。 この行registerForContextMenu(listViewManagePage);は私にどのような方法もオーバーライドしないよう要求します。

答えて

1
  1. コンテキストメニューをコードに一度登録するだけで済みます。 OnItemClickListenerイベントの外部に登録します。
  2. オーバーライドonCreateContextMenu()あなたのメニュー

    ます。public void onCreateContextMenu(たContextMenuメニュー、ビューV、ContextMenuInfo menuInfo)
    {
    super.onCreateContextMenu(メニュー、V、menuInfo)に項目を追加します。
    menu.setHeaderTitle( "アクションの選択");
    menu.add(0、v.getId()、0、 "Call"); // groupId、itemId、order、title
    menu.add(0、v.getId()、0、 "SMS") ;
    }

  3. メニュー項目のクリックイベントを処理するためonContextItemSelectedオーバーライド()onContextItemSelected

    パブリックブール(MenuItemのアイテム){
    (item.getTitle()== "コール"){
    トースト場合。 makeText(getApplicationContext()、 "呼び出しコード"、Toast.LENGTH_LONG).show();他
    }
    IF(item.getTitle()== "SMS"){
    Toast.makeText(getApplicationContext()、 "SMSコードを送信"、Toast.LENGTH_LONG).SHOW();
    } else {
    falseを返します。
    }
    return true;
    }

+0

私はあなたが何もオーバーライドを意味するものOnItemClickListenerイベントの外にそれを登録し、何もオーバーライド –

+0

?コンテキストメニューonCreateContextMenu()、onContextItemSelected()を使用するには、これらの2つのメソッドをオーバーライドする必要があります。 –

関連する問題