Android “;指定的子级已具有父级”;错误
很抱歉在这个主题上做了另一个主题,但是我已经读了好几篇,仍然不知道为什么会出现这个错误。我遵循上的“构建第一个应用程序”教程,然后尝试修改我的应用程序,为DisplayMessageActivity类提供布局。我创建了一个名为“activity\u displaymessage.xml”的文件,并将其实现到类中 我是android新手,我正试图了解这一切是如何运作的。我做错了什么 这是我的密码: MainActivity.javaAndroid “;指定的子级已具有父级”;错误,android,layout,Android,Layout,很抱歉在这个主题上做了另一个主题,但是我已经读了好几篇,仍然不知道为什么会出现这个错误。我遵循上的“构建第一个应用程序”教程,然后尝试修改我的应用程序,为DisplayMessageActivity类提供布局。我创建了一个名为“activity\u displaymessage.xml”的文件,并将其实现到类中 我是android新手,我正试图了解这一切是如何运作的。我做错了什么 这是我的密码: MainActivity.java public class MainActivity extend
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);
}
}
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);
}
}
DisplayMessageActivity.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);
}
}
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);
}
}
活动\u 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>
您有两个
setContentView
。您的布局文件activity\u displaymessage
已经有子视图R.id.text\u view
那么为什么要将其设置为setContentView()
setContentView(R.layout.activity\u displaymessage)代码>和设置内容视图(文本视图)代码>
删除此行setContentView(textview)
您有两个setContentView
。您的布局文件activity\u displaymessage
已经有子视图R.id.text\u view
那么为什么要将其设置为setContentView()
setContentView(R.layout.activity\u displaymessage)代码>和设置内容视图(文本视图)代码>
删除此行setContentView(textview)代码>
执行setContentView()时,传递给它的视图将附加到父视图。在您的情况下,当您调用时,文本视图的父视图已经设置好了
setContentView(R.layout.activity\u displaymessage)
在最后一行中,当您尝试设置ContentView(textview)时,基本上发生的情况是,您使用(textview)findViewById(R.id.text_视图)获得的同一对象在已经有父对象时被分配了父对象。这是不允许的,因此会出现错误
不需要最后一行。执行setContentView()时,传递给它的视图将附加到父视图。在您的情况下,当您调用时,文本视图的父视图已经设置好了
setContentView(R.layout.activity\u displaymessage)
在最后一行中,当您尝试设置ContentView(textview)时,基本上发生的情况是,您使用(textview)findViewById(R.id.text_视图)获得的同一对象在已经有父对象时被分配了父对象。这是不允许的,因此会出现错误
你不需要最后一行