меню параметров и контекстное меню - PullRequest
0 голосов
/ 27 ноября 2010

У меня есть просмотр списка в первый раз. Когда я щелкаю по строке, открываю контекстное меню, а затем перезаписываю выбранный элемент oncontextite

public boolean onContextItemSelected(MenuItem item) {
    switch(item.getItemId()) {

        case CALL_ID:
        {
        AdapterContextMenuInfo info2 = (AdapterContextMenuInfo) item.getMenuInfo();

        String phone=mDbHelper.getPhone(info2.id);
        String toDial="tel:"+phone.toString();

        startActivity(new Intent(Intent.ACTION_DIAL,Uri.parse(toDial)));
        return true;
        }
    }
    return super.onContextItemSelected(item);
}

это правильно, но когда я

public boolean onMenuItemSelected(int featureId, MenuItem item) {
        switch(item.getItemId()) {
        case CALL_ID:
        {
        AdapterContextMenuInfo info2 = (AdapterContextMenuInfo) item.getMenuInfo();

        String phone=mDbHelper.getPhone(info2.id);
        String toDial="tel:"+phone.toString();

        startActivity(new Intent(Intent.ACTION_DIAL,Uri.parse(toDial)));
        return true;
        }
        return super.onMenuItemSelected(featureId, item);
    }
}

приложение упало, вы можете показать мне разницу между ними

1 Ответ

2 голосов
/ 27 ноября 2010

Попробуйте это:

context_menu.xml (res / menu / context_menu.xml)

<?xml version="1.0" encoding="utf-8"?>
<menu
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/call"
          android:title="CALL" />
</menu>

Контекстное меню:

@Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        info = (AdapterView.AdapterContextMenuInfo)menuInfo;
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.context_menu, menu);
    }   
 @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()) {

        case R.id.call: 

            String phone="555-555-555";
            String toDial="tel:"+phone.toString();

            Uri uri = Uri.parse(toDial);
            Intent it = new Intent(Intent.ACTION_DIAL, uri);  
            startActivity(it);  

        return true;

        default:
            return super.onContextItemSelected(item);
        }
    }

AndroidManifest.xml

<uses-permission  android:name="android.permission.CALL_PHONE"></uses-permission>

Это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...