2016-04-12 36 views
1

Android'de yeni kullanıcıyım. Sahip olduğumBağdaştırıcı Olmadan Bağlam Menüsü

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

     }); 
    } 
} 

i Listview öğenin üzerine tıklayarak zaman başarılı gibi bir ana sınıfı. Ama Bağlam Menüsü'nü nasıl açacağımı bilmiyorum ama Bağdaştırıcı kullanmadan. Bağdaştırıcı olmadan Bağlam Menüsünün nasıl oluşturulacağını gösterir misiniz? Bu satır registerForContextMenu(listViewManagePage);, herhangi bir yöntemi geçersiz kılma isteğinde bulunmuyor.

cevap

1
  1. Kodunuzda bir kez İçerik Menüsünü kaydetmeniz yeterlidir. OnItemClickListener olayının dışında kaydettirin.
  2. kılma onCreateContextMenu() Menünüzde

    public void onCreateContextMenu (ContextMenu menüsü, Görünüm v ContextMenuInfo menuInfo)
    {
    super.onCreateContextMenu (menü, v menuInfo) öğeyi eklemek için;
    menu.setHeaderTitle ("Eylem Seç");
    menu.add (0, v.getId(), 0, "Ara"); // groupId, itemId, order, title
    menu.add (0, v.getId(), 0, "SMS") ;
    }

  3. kılma onContextItemSelected() işlemek için menü öğesinin tıklandığında olay

    kamu boolean (Menuıtem öğeyi) {
    (item.getTitle() == "Çağrı") {
    Tost eğer onContextItemSelected. makeText (getApplicationContext(), "çağrı kodu", Toast.LENGTH_LONG) .show(); Başka
    }
    if (item.getTitle() == "SMS") {
    Toast.makeText (getApplicationContext(), "sms kodu göndererek", Toast.LENGTH_LONG) .show();
    } else {
    false;

    true;
    }

+0

Ben OnItemClickListener olayın dışında kaydetmek, ama hiçbir şey geçersiz kılma –

+0

ne hiçbir şey geçersiz kılma yani? OnCreateContextMenu(), onContextItemSelected() bağlam menüsünü kullanmak için bu 2 yöntemi geçersiz kılmalısınız. –