调用活动的操作栏按钮

时间:2013-03-26 02:32:24

标签: android

主屏幕上的图像是调用活动的按钮,操作栏上的按钮可以调用与主屏幕上的按钮相同的活动。我应该做什么样的按钮以便它可以调用活动....我在菜单布局中声明了操作栏,如果它有助于确定我如何制作操作栏...问题是要使用的按钮,以便它可以调用活动..

这是我的菜单xml文件          

<item 
    android:id="@+id/open" 
    android:showAsAction="ifRoom|withText" 
    android:title="open" 
    android:icon="@drawable/ic_action_open" 
    android:menuCategory="secondary"></item>
<item 
    android:id="@+id/save" 
    android:showAsAction="ifRoom|withText" 
    android:title="Save" 
    android:icon="@drawable/ic_action_save"></item>
<item 
    android:id="@+id/close" 
    android:showAsAction="ifRoom|withText" 
    android:title="Close" 
    android:icon="@drawable/ic_action_close"></item>
<item 
    android:id="@+id/history" 
    android:showAsAction="ifRoom|withText" 
    android:title="History" 
    android:icon="@drawable/ic_action_history"></item>
<item 
    android:id="@+id/settings" 
    android:showAsAction="ifRoom|withText" 
    android:title="Settings" 
    android:icon="@drawable/ic_action_settings"></item>


</menu>

我的.java文件

package name.brucephillips.actionbarexample;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;

public class ActionBarExampleActivity extends Activity {
/** Called when the activity is first created. */
 @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    }
    public void sample (View v)
      {
    Intent intent = new Intent(getApplicationContext(), Sample.class); 
    startActivity(intent);
    }
    public void sample1(View v)
    {
    Intent intent = new Intent(getApplicationContext(), Sample1.class); 
    startActivity(intent);
    }
     public void sample2(View v)
    {
    Intent intent = new Intent(getApplicationContext(), Sample2.class); 
    startActivity(intent);
    }
    public void sample3(View v) {
    Intent intent = new Intent(getApplicationContext(), Sample3.class);
    startActivity(intent);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
       switch (item.getItemId()) {
            case R.id.sample:
            startActivity(new Intent(getApplicationContext(), Sample.class));
            break;
            case R.id.sample1:
            startActivity(new Intent(getApplicationContext(), Sample1.class));
            break;
            case R.id.sample2:
            startActivity(new Intent(getApplicationContext(), Sample2.class));
            break;
            case R.id.sample3:
            startActivity(new Intent(getApplicationContext(), Sample3.class));
            break;
    }
        return super.onOptionsItemSelected(item);
    }
}

这是我的主要xml          

android:orientation="vertical">

 <ImageView
 android:id="@+id/sample"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:onClick="sample"
 android:src="@drawable/ic_action_close" />

<ImageView
android:id="@+id/sample1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sample1"`enter code here`
android:src="@drawable/ic_action_history" />

<ImageView
android:id="@+id/sample2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sample2"
android:src="@drawable/ic_action_open" />

<ImageButton
android:id="@+id/sample3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sample3"
android:src="@drawable/ic_action_save" />



</LinearLayout>

2 个答案:

答案 0 :(得分:3)

解决此问题的另一种方法

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            startActivity(new Intent(getApplicationContext(),Preferencia.class));
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

你可以调用新的actO onOptionItem ...没有实现onClickListener ...

答案 1 :(得分:1)

这是我最好的例子,玩得开心!

public class MainActivity extends Activity implements OnClickListener {
ImageButton imageButton;
ImageView imageView1;
ImageView imageView2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    imageButton = (ImageButton) findViewById(R.id.imageButton1);
    imageView1 = (ImageView) findViewById(R.id.imageView1);
    imageView2 = (ImageView) findViewById(R.id.imageView2);

    imageButton.setOnClickListener(this);
    imageView1.setOnClickListener(this);
    imageView2.setOnClickListener(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.item1:
        onClick(imageButton);
        break;
    case R.id.item2:
        onClick(imageView1);
        break;
    case R.id.item3:
        onClick(imageView2);
        break;
    }
    return super.onOptionsItemSelected(item);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.imageButton1:
         startActivity(new Intent(getApplicationContext(), open.class));
        break;
    case R.id.imageView1:

         startActivity(new Intent(getApplicationContext(), close.class));
        break;
    case R.id.imageView2:

         startActivity(new Intent(getApplicationContext(), save.class));

        break;

    }
}

}