我不能为我的生活弄清楚为什么这不起作用。我试图在我的Java代码中引用strings.xml文件中的字符串。出于某种原因,我可以引用同一个xml文件中的每个字符串,除了我需要引用的两个字符串。我不知道我是否清楚地说出来,但下面是我目前的代码,所以我可以更好地证明这一点:
MainActivity.java
package bcs421.jorgeramirez.hwk.hellogoodbye;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button greetButton = (Button)findViewById(R.id.greetingButton);
Button goodbyeButton = (Button)findViewById(R.id.goodbyeButton);
greetButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast greeting;
Context context;
CharSequence text = getString(R.string.greeting_toast);
int duration = Toast.LENGTH_SHORT;
greeting.makeText(context, text, duration);
}
});
}
}
的strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Hello/Goodbye</string>
<string name="hello_world">Hello world!</string>
<string name="language">English</string>
<string name="greeting_msg">Greetings!</string>
<string name="goodbye_msg">Goodbye!</string>
<string name="greeting_toast">Hello!</string>
<string name="goodbye_toast">See you later!</string>
</resources>
顺便说一句,我的项目没有完成,但我无法弄明白为什么
getString(R.string.greeting_msg);
有效,但
getString(R.string.greeting_toast);
不起作用。我的XML文件中的每个其他字符串都可以在我的Java文件中引用,除了最后两个,&#34; greeting_toast&#34;和#34; goodbye_toast&#34;。任何帮助将不胜感激!!提前谢谢!
答案 0 :(得分:0)
答案 1 :(得分:0)
我不知道它在IDE上是如何工作的,但是我的Android Studio显示了一些错误..
删除此行:
Toast greeting;
你必须得到你的上下文,因为我猜你的代码上下文是null。
然后你必须通过添加.show()
来展示你的吐司Context context = getApplicationContext();
CharSequence text = getString(R.string.greeting_toast);
int duration = Toast.LENGTH_SHORT;
Toast.makeText(context, text, duration).show();'
您也可以将其缩短为一行,如下所示:
Toast.makeText(getApplicationContext(), R.string.greeting_toast, Toast.LENGTH_SHORT).show();