将数据发送到其他活动并显示一些其他TextView

时间:2013-02-04 04:49:17

标签: android android-intent

我有一个Android应用程序,我将数据从一个活动发送到另一个活动。我可以很容易地做到这一点,但问题是我想显示一些额外的TextViews。因此,当我使用setContentView显示发送的数据时,我只能看到发送的数据。我看不到额外的TextViews。我想要同时显示它们。

我搜索并努力找到一个没有任何运气的解决方案。我附上代码供参考。谢谢!

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_crop_information);
    Intent intent = getIntent();
    String message = intent.getStringExtra(CropsListActivity.EXTRA_MESSAGE);
    TextView textViewci= new TextView(this);
    textViewci.setText(message);
    TextView textView1= new TextView(this);
    TextView textView2= new TextView(this);
    textView1.setText("Major Districts");
    textView2.setText("Suitable Soil");

当我使用此代码时,我无法看到任何内容,活动仍然是空白。实际上我在这里使用TableLayout以便我可以以表格的形式显示数据

5 个答案:

答案 0 :(得分:2)

您必须在布局上添加文字视图。

View linearLayout =  findViewById(R.id.info);
//LinearLayout layout = (LinearLayout) findViewById(R.id.info);


TextView valueTV = new TextView(this);
valueTV.setText("hallo hallo");
valueTV.setId(5);
valueTV.setLayoutParams(new LayoutParams(
        LayoutParams.FILL_PARENT,
        LayoutParams.WRAP_CONTENT));

((LinearLayout) linearLayout).addView(valueTV);

答案 1 :(得分:2)

您必须在父视图中添加文本视图。例如,如果您在线性布局中使用了文本视图,则在线性布局中添加文本视图,然后使用addview(linearlayout)。

以下是示例

RelativeLayout layout = new RelativeLayout(this);
TextView tv1 = new TextView(this);
tv1.setText("A");
tv1.setId(23);

TextView tv2 = new TextView(this);
tv2.setText("B");
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.FILL_PARENT);
lp.addRule(RelativeLayout.RIGHT_OF, tv1.getId());

layout.addView(tv1);       
layout.addView(tv2, lp);

答案 2 :(得分:1)

您收到任何错误消息吗?如果是,那么请在这里发布。其他是正确的。您需要将您的视图添加到父布局。

答案 3 :(得分:1)

I have just make a test program for you. first class code

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    button = (Button) findViewById(R.id.button1);

    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
        Intent intent = new Intent(MainActivity.this, SecondClass.class);
        intent.putExtra("firstValue", "1");
        intent.putExtra("secondValue", "2");
        startActivity(intent);


        }
    });

Second class code :

setContentView(R.layout.activity_crop_information);
        Intent intent = getIntent();
        String message1 = intent.getStringExtra("firstValue");
        String message2 = intent.getStringExtra("secondValue");

        RelativeLayout layout = new RelativeLayout(this);
        TextView textView1= new TextView(this);
        TextView textView2= new TextView(this);

        TextView textViewci= new TextView(this);
        textViewci.setText(message1+""+message2);
        Log.e("intent value is", ""+message1+""+message2);


        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.FILL_PARENT);
        lp.addRule(RelativeLayout.RIGHT_OF, textView1.getId());


        textView1.setText("Major Districts");
        textView2.setText("Suitable Soil");

        layout.addView(textView1);
        layout.addView(textView2);
        addContentView(layout, lp);

Try and let me know. YOu have to make related layouts for both classes.
Hope this will help

答案 4 :(得分:1)

我自己找到了答案。这很简单,这里不需要在父布局中使用视图。我修改了我的xml文件中的textViews并使用{{1}获取了它们的值我附上了更新的代码。

findViewById