如何在第二个活动上显示文本

时间:2014-06-09 17:43:02

标签: android android-intent

因此,第一个活动要求用户点击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"));

}

}

2 个答案:

答案 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}}中获取额外费用。