Toolbar و ایجاد ایکن جدید در ان
سلام، میخاستم کنار popup menuای که داخل تولبارم نوشتم یک ایکن جدید arrow بگزارم که وقتی روش کلیک میشه، یک اکتیویتی جدید رو به اسم SubActivity باز کنه. براهمین داخل فولدر res یک فولدر جدید به اسم menu ساختم و داخلش فایل menu_main.xml رو ساختم که کدهای مربوط به این ایکن جدید رو داخلش گذاشتم. ایکن نمایش داده میشه ولی وقتی روش کلیک میکنم، اکتیویتی جدید رو باز نمیکنه و مشکل دیگه اینکه میخام این ایکن درست سمت چپ popupmenu نمایش داده بشه ولی به شکل زیر هستش. چه تغییری باید بدم؟ ممنون.
//Codes of menu_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/navigate"
android:title="@string/next"
android:orderInCategory="100"
android:icon="@drawable/arrow"
app:showAsAction="always"
android:layout_gravity="end"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"/>
</menu>
//Codes of MainActivity.java:
package com.example.n5110.materialtest;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
private ImageButton imageButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setIcon(R.drawable.arrow);
// codes for Creating popup menu
imageButton = (ImageButton)findViewById(R.id.imageButton);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onPopupButtonClick(v);
}
});
}
public void onPopupButtonClick(View button){
PopupMenu popup = new PopupMenu(this, button);
popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(MainActivity.this, "Clicked Popup Menu Item" + item.getTitle(), Toast.LENGTH_SHORT).show();
return false;
}
});
popup.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.navigate) {
startActivity(new Intent(this, SubActivity.class));
return true;
}
return super.onOptionsItemSelected(item);
}
}


سلام دوستان، بالاخره بعد از کلییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییی جستجو جواب صحیح رو یافتم ! این جا درجش می کنم تا اگه کسی بهش برخورد تو وقتش صرفه جویی بشه :)
والا به کمک متد onOptionesItemSelected که نتونستم کاری که میخاستم arrow انجام بده رو درستش کنم ولی بعد از وقتی که تولبار رو ست کردم می بایست این جوری از تولبارم استفاده کنم :
toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.arrow);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SubActivity.class);
MainActivity.this.startActivity(intent);
}
});
موفق باشییییییییییییییییییییییییین :)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .