繁体   English   中英

Android:如何将多个值从活动类传递给setContentView()方法?

[英]Android: how to pass multiple values to setContentView() method from an activity class?

我在将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()方法不想接受多个值。 如何在另一个textview中显示另一个值,然后显示它?

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

您可以使用ViewGroup例如LinearLayoutRelativeLayout然后将TextViews添加到相同的setContenView(linearlayout); ,然后再使用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);

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

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

您只能将视图添加到setContentView(...)。 最好创建一个同时包含TextView和setContentView的新视图。

RelativeLayout layout= new RelativeLayout(this);
layout.addView(textView1);
layout.addView(textView1);
setContentView(layout);

这里有些错误,让我们从头开始...

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

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

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

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

您只需使用此方法设置layout (通常)。 您可以动态创建View ,但这不是必须的。 如果这样做,则需要将它们添加到您的展开式layout (您在setContentView()设置的layout )。 您可以将它们添加到布局( 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

请参阅文档中的此页面以获取更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM