0

Intentから別のアクティビティを呼び出すを開始する方法がわかりませんContextMenu。次のコードがあります。

    public void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.profile);
    Button button5 = (Button) findViewById(R.id.button5);
        registerForContextMenu(button5);
    //...code...//

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("Profile Options");
        menu.add(0,v.getId(),0, "Header");
        menu.add(0,v.getId(),0, "Header");

**This is where my Intent is ** Intent intent = new Intent (CustomizeActivity2.this, CustomizeActivity.class);
    startActivity(intent);

    public boolean OnContextItemSelected(MenuItem item) {
        if(item.getTitle()=="Edite Profile"){

            function1(item.getItemId());
            }

        else {return false;}
        return true;
    }

    public void function1(int id){
        Toast.makeText(this,"Edit Profile Called", Toast.LENGTH_SHORT).show();  
    }

いくつかの設定があるmy からアイテムをクリックしているときに、別のアクティビティを開始したいと思いContextMenuます。

4

4 に答える 4

2

コードにいくつかのエラーがあります。onCreateContextMenuあなたContextMenuが構築されている方法:

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("Profile Options");
        menu.add(0, 1000, 0, "Header1"); // give your menus distinct ids!!!
        menu.add(0, 1001, 0, "Header2");
}

ユーザーが からオプションの 1 つを選択しContextMenu、新しいアクティビティを開始したときに呼び出されるコールバック:

//the correct callback name starts with o and not O
@Override
public boolean onContextItemSelected(MenuItem item) {
   switch (item.getItemId()) {
   case 1000:
       //first ContextMenu option I picked this to start the  new activity
       Intent i = new Intent(CurrentActivityName.this, OtherActivityName.class);
       startActivity(i);
   break; 
   case 1001:
      //stuff for option 2 of the ContextMenu
   break;
   }
   return super.onContextItemSelected(item);
}
于 2012-04-26T18:03:19.047 に答える
0

マニフェストで 2 番目のアクティビティ (呼び出しているアクティビティ) を宣言したことを確認してください。コンパイル エラーは発生しませんが、Android は、現在のパッケージ/apk にある場合でも、マニフェストで定義されていないアクティビティを起動できません。

必要に応じて、manifest.xml ファイルに何が含まれているかをお知らせください。変更が必要かどうかを判断します。

編集:マニフェストにこのようなものが表示されていることを確認してください

<activity android:name=".CustomizeActivity" />  
于 2012-04-25T19:48:35.397 に答える
0

コード内の任意の場所でアクティビティを開始するには、新しいインテントを作成し、ターゲット コンポーネントをターゲット アクティビティ クラスに設定してから、このインテント パラメーターを使用して startActivity メソッドを呼び出す必要があります。

于 2012-04-25T18:36:58.833 に答える
0
// in my Util.java:
static void switchActivity(Activity from, Class<?> to) {
    Intent intent = new Intent(from, to);
    from.startActivity(intent);
    from.finish(); // only do this if you want to close the current activity
}

// in your context menu:
Util.switchActivity(this, AnotherActivity.class);
于 2012-04-25T18:40:49.793 に答える