制作一个应用程序,询问用户他们喜欢的颜色,然后将它们带到一个新的Activity,使用该颜色作为背景颜色,并说出一些不错的东西。 但我不知道为什么它再次崩溃和agian
继承人的代码
MainActivity.java
private TextView mtextview;
private EditText medittext;
private Button mbutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mtextview = (TextView) findViewById(R.id.textView);
medittext=(EditText)findViewById(R.id.editText);
mbutton=(Button)findViewById(R.id.button);
mbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name =medittext.getText().toString();
startStory(name);
}
private void startStory(String name) {
Intent intent = new Intent(MainActivity.this,AnotherActivity.class);
intent.putExtra("name",name);
startActivity(intent);
}
});
}
}
AnotherActivity.java
public class AnotherActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_another);
final RelativeLayout mrelativelayout = (RelativeLayout) findViewById(R.id.activity_main);
Intent intent = getIntent();
String name = intent.getStringExtra("name");
mrelativelayout.setBackgroundColor(Color.parseColor(name));
}
}
答案 0 :(得分:0)
我假设您将颜色名称传递为“黑色”,“蓝色”,“天蓝”以及其他颜色名称。
但希望您了解parseColor()方法支持的字符串参数值。
支持的格式为:#RRGGBB #AARRGGBB或以下之一 名称:'红色','蓝色','绿色','黑色','白色','灰色','青色', 'magenta','yellow','lightgray','darkgray','grey','lightgrey', 'darkgrey','aqua','fuchsia','lime','maroon','navy','olive', '紫色','银色','青色'。
答案 1 :(得分:0)
首先AnotherActivity
在OnCreate
方法中添加以下代码。
final RelativeLayout mrelativelayout = (RelativeLayout) findViewById(R.id.activity_main)
;
因为它会为您提供NullPointerException
。
而不是尝试这个
Editable name = medittext.getText();
使用这种方式
String name = medittext.getText().toString();
并通过AnotherActivity
将该字符串传递给Intent
。
答案 2 :(得分:0)
确保将intent放入intent时,将其转换为String。 目前,您只是将一个Editable对象而不是String对象传递给intent
示例:
intent.putExtra("name",name.toString());
或更好,更改名称类型
String name = medittext.getText().toString();
答案 3 :(得分:0)
请发布您的activity_main.xml和activity_another.xml。问题是没有带android的按钮:id =" @ + id / button"在您的activity_main.xml中,可能是在activity_another.xml中。