因此,第一个活动要求用户点击3个按钮中的一个,每个按钮代表一种颜色。我创建了第二个活动并接受了点击按钮的值。我使用if循环来匹配按钮的值,如果按钮的值与颜色匹配,它应该显示一个字符串“你已选择(颜色)”。但是,我不确定我通过intent对象传递的参数。有人可以帮忙吗?是的,我是一个菜鸟,刚开始学习Android。
package org.example.helloandroid;
import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity {
String EXTRA_MESSAGE= null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/** if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
**/
}
@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;
}
public void gotoActivity(View v) {
Button b= (Button)v;
String message= b.getText().toString();
if (message=="red") {
Intent intent = new Intent(this, ColorActivity.class);
intent.putExtra(EXTRA_MESSAGE, "You have chose RED ");
startActivity(intent);
}
if (message=="green") {
Intent intent= new Intent(this, ColorActivity.class);
intent.putExtra(EXTRA_MESSAGE, "You have chose GREEN!");
startActivity(intent);
}
else {
Intent intent= new Intent (this, ColorActivity.class);
intent.putExtra(EXTRA_MESSAGE, "You have chose BLUE");
startActivity(intent);
}
}
}
以下是第二个活动的代码 - ColorActivity
package org.example.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class ColorActivity extends Activity {
String EXTRA_MESSAGE= "message";
TextView mTextview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.color_activity);
mTextview=(TextView) findViewById(R.id.textView1);
mTextview.setText(getIntent().getStringExtra("EXTRA_MESSAGE"));
}
}
答案 0 :(得分:0)
按照以下方式进行第二项活动:
确保将字符串值EXTRA_MESSAGE
设置为某个值
public class SecondActivity extends Activity {
TextView mTextview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
mTextview = (TextView)findViewById(R.id.textView1);
mTextview.setText(getIntent().getStringExtra("EXTRA_MESSAGE"));
}
}
答案 1 :(得分:0)
首先,您尚未分配EXTRA_MESSAGE
。在MainActivity
...
String EXTRA_MESSAGE= null;
...到...
String EXTRA_MESSAGE= "message";
另外,在第二个Activity
添加完全相同的行。
其次,您无法使用==
比较字符串,必须使用equals(...)
方法。实施例...
if (message=="red")
......应该......
if (message.equals("red"))
除此之外,只需遵循AndroidWarrior描述的格式,即可从用于启动第二个Intent
的{{1}}中获取额外费用。