构建一个小的水龙头计数器应用程序。我希望操作栏中的"刷新"按钮将文本视图重置为零。
public class MainActivity extends Activity {
int counter;
Button add, sub, refresh; // Tried to do this with refresh
TextView display;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
counter = 0;
add = (Button) findViewById(R.id.buttonAdd);
sub = (Button) findViewById(R.id.buttonSub);
display = (TextView) findViewById(R.id.textView);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
counter++;
display.setText("Amount: " + counter);
}
});
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
counter--;
display.setText("Amount: " + counter);
}
});
}
我尝试了几件事,什么都没有
操作栏项
在 xml 布局 (my_layout.xml):
<Button
android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="reset counter"/>
<TextView
android:id="@+id/textView"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="5" />
在您的活动中:
public class MyActivity extends Activity {
//your counter variable
int counter = 0;
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.my_layout);
final TextView textView = (TextView) findViewById(R.id.textView);
final Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
counter = 0;
textView.setText(counter+"");
}
});
}
}
活动在其
onCreateOptionsMenu() 方法中填充 ActionBar。
只需像这样覆盖创建选项菜单:
@Override
public boolean onCreateOptionsMenu(Menu.
menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
return true;
}
如果选择了"操作栏"中的某个操作,则会调用 onOptionsItemSelected() 方法。它接收所选操作作为参数。根据此信息,您可以编写代码来决定要执行的操作,例如:
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId()) {
case R.id.menuitem1:
Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT)
.show();
break;
case R.id.menuitem2:
Toast.makeText(this, "Menu item 2 selected", Toast.LENGTH_SHORT)
.show();
break;
default:
break;
}
return true;
}