0

我在将值从 MainActivityClass 传递和显示到另一个 MyActivityClass 时遇到一些问题。所以我在这里学习了如何将值从一个类传递到另一个类。这是 MainActivity 类的方法,其中包含其他活动的意图:

Intent intent = new Intent(this, AddAptActivity.class);
Bundle extras = new Bundle();

EditText editText = (EditText) findViewById(R.id.edit_address);
String message = editText.getText().toString();
EditText editText2 = (EditText) findViewById(R.id.edit_name);
String message2 = editText2.getText().toString();

extras.putString(EXTRA_MESSAGE, message);
extras.putString(EXTRA_MESSAGE1, message2);

intent.putExtras(extras);
startActivity(intent);

然后在 MyActivityClass 中接收值:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();

    Bundle extras = intent.getExtras();

    String message = extras.getString(MainActivity.EXTRA_MESSAGE);
    String message2 = extras.getString(MainActivity.EXTRA_MESSAGE2);

    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    TextView textView2 = new TextView(this);
    textView2.setTextSize(40);
    textView2.setText(message2);

    setContentView(textView, textView2); 
}

但是 setContentView() 方法不想接受多个值。如何在另一个文本视图中显示另一个值然后显示它???

我想我不明白如何使用 setContentView 显示值...请帮助我,因为我是 Android 编程新手(一周前刚完成第一个教程)。

4

4 回答 4

6

您可以使用ViewGroup诸如 aLinearLayoutRelativeLayout然后将 TextViews 添加到相同然后setContenView(linearlayout);

 LinearLayout ll = new LinearLayout(this); 
 ll.setOrientation(LinearLayout.VERTICAL);
 TextView textView = new TextView(this);
 TextView textView2 = new TextView(this);
 ll.addView(textView);
 ll.addView(textView2);
 setContenView(ll);
于 2014-04-07T17:17:20.373 回答
0

您只能将视图添加到您的 setContentView(...)。最好创建一个包含 TextView 的新视图,然后将内容视图设置为这个新视图。

RelativeLayout layout= new RelativeLayout(this);
layout.addView(textView1);
layout.addView(textView1);
setContentView(layout);
于 2014-04-07T17:19:54.017 回答
0

这里有几个问题,所以让我们从头开始......

但是 setContentView() 方法不想接受多个值。有一种方法需要第二个参数,但它是用于布局参数的。

不,如果您查看文档就可以了,并且您不能强迫它花费更多(无需重写活动类)。

我想我不明白如何使用 setContentView 显示值。

我也不这么认为,但你会的。

您只需layout使用此方法设置一个(通常)。您正在View动态创建 s ,这没关系,但您不需要。如果你这样做了,那么你需要将它们添加到你的充气layout(你设置的那个setContentView())中。您可以将它们添加到您的布局 ( someLayout.xml) 然后获取对它们的引用

所以它可能看起来像

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*
* call this first and it will save you some grief 
*/
where someLayoutFile is the xml file without the .xml extension
setContentView(R.layout.someLayoutFile);  

Intent intent = getIntent();
Bundle extras = intent.getExtras();
String message = extras.getString(MainActivity.EXTRA_MESSAGE);
String message2 = extras.getString(MainActivity.EXTRA_MESSAGE2);

TextView textView = (TextView) findViewById(R.id.someID); // where someId is the id you give a TextVIew in your xml file
textView.setTextSize(40);
textView.setText(message);

// create another TextView in your xml and do the same with that using the appropriate layout

有关更多信息,请参阅文档中的此页面

于 2014-04-07T17:21:16.463 回答
0

setContentView() 采用一个布局,一个视图或一个布局资源 ID。您可以将 LinearLayout、RelativeLayout 等传递给 setContentView(),它可以包含任意数量的视图。可能更好的方法是构建一个包含视图更高层次的布局 XML 文件,然后使用 setContentView(R.layout.someLayout); 设置它。

在这里查看更多信息:http: //developer.android.com/guide/topics/ui/declaring-layout.html

于 2014-04-07T17:18:38.810 回答