2014-04-10 140 views
1

這是我ActionBar,它有兩個按鈕:如何打開點擊操作欄中按鈕的新活動?

My <code>ActionBar</code>

private void showActionBar() { 
    LayoutInflater inflator = (LayoutInflater) this 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View v = inflator.inflate(R.layout.activity_main_actions, null); 
    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(false); 
    actionBar.setDisplayShowHomeEnabled(false); 
    actionBar.setDisplayShowCustomEnabled(true); 
    actionBar.setDisplayShowTitleEnabled(false); 
    actionBar.setCustomView(v); 
} 

我用這個方法來顯示按鈕。我在onCreate中調用了這個方法。

現在我想要當我點擊任何按鈕,在行動欄新的活動打開。

,比如我有AskActivity.java和MessageActivity.java

現在,當我在ASK點擊按鈕AskActivity.java打開。

這可能嗎?

我已經使用這個,但它不工作。

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Take appropriate action for each action item click 
    switch (item.getItemId()) { 
    case R.id.action_ask: 
     Intent i = new Intent(getApplicationContext(), AskActivity.class); 
     startActivity(i); 
     return true; 
    case R.id.action_message: 
     Intent ij = new Intent(getApplicationContext(), MessageActivity.class); 
     startActivity(ij); 
     return true; 

default: 
    return super.onOptionsItemSelected(item); 
    } 
} 
+0

發表您的logcat或錯誤 –

+0

沒有得到錯誤。只是無法打開按鈕上的AskActivity.class點擊 – user3393921

+0

是的,你以前說過。那麼你爲什麼不把Log.d或者某些東西去追蹤實際發生的事情。 –

回答

1

我認爲這是因爲onOptionsItemSelected方法涉及MenuItem而不是CustomView。兩個按鈕不是選項菜單項,它們是佈局activity_main_actions內的按鈕。你有兩個選擇 - 要麼創建點擊收聽一個新的,具體如下:

Button action_ask = (Button) findViewById(R.id.action_ask); 
action_ask.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v){ 
     // do something 
    } 
} 

或者,使用上點擊屬性的方法:

<Button 
    android:id="@+id/action_ask" 
    ... 
    android:onClick="actionAskClicked" /> 

然後您的活動中:

public void actionAskClicked() { 
    // do something 
} 

相同的另一個按鈕action_message。希望這可以幫助。

1

您需要創建從菜單按鈕,點擊打開活動的方法:

public boolean onOptionsItemSelected(MenuItem item) { 
// Take appropriate action for each action item click 
switch (item.getItemId()) { 
case R.id.action_ask: 

    startActivity(AskActivity.class); 
    return true; 
default: 
    return super.onOptionsItemSelected(item); 
    } 
} 

protected void StartActivity(Class<?> cls) { 
    Intent intent = new Intent(activity, cls); 
    activity.startActivity(intent); 
}