我有一个只有菜单图标的工具栏,它以编程方式设置,如下所示:
myToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(myToolbar);
myToolbar.setTitleTextColor(Color.BLACK);
ActionBar ab = getSupportActionBar();
ab.setHomeAsUpIndicator(R.drawable.menu);
ab.setDisplayHomeAsUpEnabled(true);
现在,我想在工具栏中有另一个图标,并将其与我的src图像和onClick方法相关联。正如您所看到的,我没有xml菜单文件,而且我也不想设置默认的android图标,所以我该如何执行此操作?
答案 0 :(得分:0)
工具栏的主要用途是使用自定义布局! 您可以将任何UI元素(如按钮)添加到工具栏,然后在代码中找到它们。
答案 1 :(得分:0)
您可以通过提供布局文件或View对象将CustomView设置为ActionBar。在该自定义视图中,您可以执行任何操作。
以下是如何将自定义视图设置为操作栏
protected void setCustomActionBarTitle(String title) {
ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setCustomView(R.layout.layout_action_bar_title);
TextView titleView = (TextView) actionBar.getCustomView().findViewById(R.id.action_bar_title);
titleView.setText(title);
ImageView customIconImageView = (ImageView) actionBar.getCustomView().findViewById(R.id.custom_icon);
customIconImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// call my method on the activity
}
});
ImageView imageView = (ImageView) actionBar.getCustomView().findViewById(R.id.up_icon);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
}
答案 2 :(得分:0)
您将不得不使用单独的xml文件到setup your菜单和define any extra buttons (item)。以下是示例菜单文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- "Mark Favorite", should appear as action button if possible -->
<item
android:id="@+id/action_favorite"
android:icon="@drawable/ic_favorite_black_48dp"
android:title="@string/action_favorite"
app:showAsAction="ifRoom"/>
<!-- Settings, should always be in the overflow -->
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
app:showAsAction="never"/>
</menu>
答案 3 :(得分:0)
在菜单中添加所需的图标 - &gt; menu_main.xml
#include <stdio.h>
#include <string.h>
int isdigit(char c);
int main()
{
char *input
int length;
printf("Number or Letter\n");
gets(input);
input = (char*)malloc(sizeof(char)*strlen(input));
printf(input[0]);
return 0;
}
并在您的活动中
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".ui.MainActivity">
<item
android:id="@+id/action_scan"
android:icon="@drawable/camera_icon"
android:orderInCategory="100"
android:title="@string/action_scan"
android:visible="true"
app:showAsAction="always" />
答案 4 :(得分:0)
这段代码对我有用,
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(R.string.app_name);
toolbar.setTitleTextColor(getResources().getColor(R.color.colorWhite));
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
final ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
答案 5 :(得分:0)
使用此选项可将图标添加到工具栏中。覆盖这些方法并使用项目中的代码..
@Override
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;
getMenuInflater().inflate(R.menu.menu_dashboard, menu);
menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.ic_about));
menu.getItem(1).setIcon(getResources().getDrawable(R.drawable.street_view_icon));
return true;
}
//Notification Icon
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
// Handle action bar actions click
switch (item.getItemId()) {
case R.id.action_notify_found:
Intent aboutIntent=new Intent(DashboardActivity.this, HomeAboutActivity.class);
startActivity(aboutIntent);
case R.id.action_notify_found1:
Intent ARStreetviewintent = new Intent(DashboardActivity.this, ARStreetviewActivity.class);
startActivity(new Intent(DashboardActivity.this, StreetviewActivity.class));
default:
return super.onOptionsItemSelected(item);
}
}
menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!-- Notification Found -->
<item android:id="@+id/action_notify_found"
android:icon="@drawable/about"
android:title="About"
app:showAsAction="ifRoom"
/>
<!-- Notification Found -->
<item android:id="@+id/action_notify_found1"
android:icon="@drawable/street_view_icon"
android:title="StreetView"
app:showAsAction="ifRoom"
/>