如何单击程序控制下的Android操作栏项目?
PeterH发布了以下代码:如何单击程序控制下的Android操作栏项目?,android,Android,PeterH发布了以下代码: //initiate the button button.performClick(); button.setPressed(true); button.invalidate(); // delay completion till animation completes button.postDelayed(new Runnable() { //delay button public void run() { button.setPressed(
//initiate the button
button.performClick();
button.setPressed(true);
button.invalidate();
// delay completion till animation completes
button.postDelayed(new Runnable() { //delay button
public void run() {
button.setPressed(false);
button.invalidate();
//any other associated action
}
}, 800); // .8secs delay time
是否可以对操作栏项执行相同类型的操作?好的,您可以将菜单项另存为字段,然后调用onOptions ItemSelected(savedMenuItem)。但是,由于ActionBar项目是菜单项而不是按钮(当然,如果您的操作栏没有使用view-like进行自定义的话)。但是,如果您的ActionBar是使用视图定制的,并且该视图有一个按钮,那么可以根据您的代码片段中的考虑对该按钮的行为进行定制。 例如:
}不幸的是,我的操作栏是通用风格。我将保存代码,以防我决定更改UI。谢谢
public class MainActivity extends Activity {
MenuItem item;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getActionBar();
actionBar.setSubtitle("mytest");
actionBar.setTitle("TESTESTEST");
TextView tView = (TextView) findViewById(R.id.textView1);
tView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onOptionsItemSelected(item);
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_settings) {
this.item = item;
Toast.makeText(this, "settings", Toast.LENGTH_SHORT).show();
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}