نوشته شده توسط
محمد فدوی
سؤالتون واضح نیست. نمونه کد بذارید.
مثلا در کدهای زیر چرا عبارات جلوی case ها باید final شده باشند و الا ایراد گرفته میشه؟
package ahmadi.android.app01;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MyMenuItems2Activity extends Activity {
private final int MENU_ADD = 1, MENU_SEND = 2, MENU_DEL = 3;
private final int GROUP_DEFAULT = 0, GROUP_DEL = 1;
private int counter = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(GROUP_DEFAULT, MENU_ADD, 0, "ADD");
menu.add(GROUP_DEFAULT, MENU_SEND, 0, "SHOW");
menu.add(GROUP_DEL, MENU_DEL, 0, "DEL");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(counter > 0) {
menu.setGroupVisible(GROUP_DEL, true);
}else {
menu.setGroupVisible(GROUP_DEL, false);
}
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case MENU_ADD:
counter++;
return true;
case MENU_SEND:
Toast.makeText(this, "Counter is now: " + counter, Toast.LENGTH_SHORT).show();
return true;
case MENU_DEL:
counter--;
}
return super.onOptionsItemSelected(item);
}
}