SORU
23 ŞUBAT 2013, CUMARTESİ


Parça çağrıldığını onOptionsİtemSelected değil

Bar menü seçeneği görünür benim parçası için paylaşım adı verilen bir eylem ekledim ama seçim olayı yakalanmaktan değil

Bu gibi ekliyorum

    @Override
public void onCreateOptionsMenu (Menu menu, MenuInflater inflater)
{
    MenuItem item = menu.add(0, 7,0, R.string.share);
    item.setIcon(R.drawable.social_share).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}

Her iki parçada ele geçirmek için çalışıyor ve parça aktivite gibi

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case 7:
            Intent share = new Intent(Intent.ACTION_SEND);
            share.setType("text/plain");
            share.putExtra(Intent.EXTRA_TEXT, "I'm being sent!!");
            startActivity(Intent.createChooser(share, "Share Text"));
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

ve setHasOptionsMenu(true); onCreate var()

CEVAP
19 AĞUSTOS 2013, PAZARTESİ


Aynı sorun bende de vardı, ama daha iyi ve çalışan almak için son adım özetlemek tanıtmak olduğunu düşünüyorum:

  1. Fragmanın setHasOptionsMenu(true) yöntem onCreate(Bundle savedInstanceState) yöntemi ekleyin.

  2. Fragmanın ** 8 Eğer bir Parça menüsünden farklı yapmak istiyorsanız () ve onOptionsItemSelected(MenuItem item) yöntemleri geçersiz kılar.

  3. Etkinliği onOptionsItemSelected(MenuItem item) yöntemi içinde, menü öğesi eylemin onOptionsItemSelected(MenuItem item) yöntemin Parçası olarak hayata geçirilecek zaman false iade emin olun.

Bir örnek:

Faaliyet

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.activity_menu_item:
        // Do Activity menu item stuff here
        return true;
    case R.id.fragment_menu_item:
        // Not implemented here
        return false;
    default:
        break;
    }

    return false;
}

Parça

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    ....
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    // Do something that differs the Activity's menu here
    super.onCreateOptionsMenu(menu, inflater);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.activity_menu_item:
        // Not implemented here
        return false;
    case R.id.fragment_menu_item:
        // Do Fragment menu item stuff here
        return true;
    default:
        break;
    }

    return false;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jeffisthecoolguy

    jeffisthecoo

    17 HAZİRAN 2013
  • kamaniusilelis

    kamaniusilel

    10 HAZİRAN 2011
  • TeeMayneTV

    TeeMayneTV

    27 Kasım 2010