我需要能够在“Hello world!”的两个文本值之间切换。和“你好!!!”。我知道这将非常简单,但因为我对编程非常新,所以请耐心等待。提前致谢。
package edu.purdue.cnit355_lab1;
public class MainActivity extends Activity {
private Button HelloButton;
private TextView Message;
private OnClickListener HelloButtonListener = new OnClickListener() {
@Override
public void onClick(View v) {
Message.setText("Hello!!!");
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
HelloButton = (Button) findViewById(R.id.HelloButton);
Message = (TextView) findViewById(R.id.MessageText);
HelloButton.setOnClickListener(HelloButtonListener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
我的layout.main.xml
:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/HelloButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello_button_label"
/>
<TextView
android:id="@+id/MessageText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
/>
</RelativeLayout>
我的strings.xml
:
<?xml version="1.0" encoding="utf-8"?>
<string name="app_name">Hello Button</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="hello_button_label">Say "Hello!".</string>
答案 0 :(得分:1)
@Override
public void onClick(View v) {
if (Message.getText().equals("Hello World")) {
Message.setText("Hello!!!");
} else {
Message.setText("Hello World");
}
}
您还应该考虑使用字符串值
getResources().getString(R.string.hello_world)
而不是使用硬编码。
尽量避免使用像Message
这样的大写命名变量,因为它们可能被误认为是对象。
答案 1 :(得分:0)
您的代码看起来不错。您可以添加一些标记以在字符串之间切换。像这样:
private Strig[] hello = new String[]{"Hello World", "Hello!"};
private int toggleFlag = 0;
在你的onClick方法中:
Message.setTex(hello[toogleFlag]);
toggleFlag ^= 1; // exclusive OR