2012-07-13 85 views
0

对不起,在这个主题上做了另一个主题,但我已经阅读了其中几个,仍然不知道为什么我得到这个错误。我遵循http://developer.android.com/training/basics/firstapp/index.html上的“构建您的第一个应用程序”教程,然后尝试修改我的应用程序以给予DisplayMessageActivity类的布局。我创建了一个名为“activity_displaymessage.xml”的文件并将其实施到类中。“指定的孩子已经有父母”错误

我是新来的android和我试图了解这一切如何工作。我究竟做错了什么?

这里是我的代码:

MainActivity.java

public class MainActivity extends Activity { 

    public final static String EXTRA_MESSAGE = "com.example.sampleandroid.MESSAGE"; 

     . 
     . 
     . 


    public void sendMessage(View view){ 
     Intent intent = new Intent(this, DisplayMessageActivity.class); 
     EditText editText = (EditText) findViewById(R.id.edit_message); 
     String message = editText.getText().toString(); 
     intent.putExtra(EXTRA_MESSAGE, message); 
     startActivity(intent); 
    } 
} 

DisplayMessageActivity.java

public class DisplayMessageActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_displaymessage); 

     Intent intent = getIntent(); 
     String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 

     TextView textview = (TextView) findViewById(R.id.text_view); 
     textview.setText(message); 

     setContentView(textview); 
    } 
} 

activity_displaymessage.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:weightSum="2"> 

    <TextView android:id="@+id/text_view" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:textSize="30sp"/> 

</LinearLayout> 

回答

2

你有两个setContentView。您的布局文件activity_displaymessage已经有子视图R.id.text_view那么为什么要将它设置为setContentView()。

setContentView(R.layout.activity_displaymessage);setContentView(textview);

删除此行setContentView(textview);

+0

哦,伙计。你很快:) 谢谢你。它像一个魅力:) – Sayid 2012-07-13 11:34:42

1

当你做的setContentView(),视图传递给它被连接到母体。在你的情况,text_view的家长已经越来越设置,当你调用

的setContentView(R.layout.activity_displaymessage)

在最后一行,当你尝试的setContentView(TextView的),基本上什么情况是你使用的同一个对象(TextView)findViewById(R.id.text_view)被赋予一个父对象时,它已经有一个父对象。这是不允许的,因此也是错误。

你不需要最后一行。

+0

谢谢你。我现在知道了。 – Sayid 2012-07-13 11:46:25

相关问题