在Android中向相对布局添加文本视图

在Android中向相对布局添加文本视图,android,textview,Android,Textview,所以我到处都在研究,但似乎没有其他人有这个问题,可能是因为他们知道如何编程,但无论如何,我试图在我的Android应用程序的相对布局中添加一个文本视图,但无论我做什么,我都无法获得布局中已有的文本和按钮。 以下是我的活动代码: public class EnterApp extends Activity { int marblesInJar=0; int targetMarblesInJar=0; @Override public void onCreate(Bundle savedInstan

所以我到处都在研究,但似乎没有其他人有这个问题,可能是因为他们知道如何编程,但无论如何,我试图在我的Android应用程序的相对布局中添加一个文本视图,但无论我做什么,我都无法获得布局中已有的文本和按钮。 以下是我的活动代码:

public class EnterApp extends Activity {
int marblesInJar=0;
int targetMarblesInJar=0;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent= getIntent();
    targetMarblesInJar= intent.getIntExtra("MESSAGE_marbles",0);

    RelativeLayout marble= new RelativeLayout(this);

    TextView textView = new TextView(getApplicationContext());

    textView.setTextSize(20);
    textView.setText("Your marble jar will be full when it has "+ targetMarblesInJar + " marbles. You have " + marblesInJar + " marbles.");
    textView.setTextColor(Color.BLACK);
    marble.addView(textView);

    this.setContentView(R.layout.activity_enter_app);


    // Show the Up button in the action bar.
    setupActionBar();
}
以下是我的xml相对布局代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".EnterApp" >

 <Button
 android:id="@+id/button1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignBaseline="@+id/button2"
 android:layout_alignBottom="@+id/button2"
 android:layout_marginRight="16dp"
 android:layout_toLeftOf="@+id/button2"
 android:onClick="addMarble"
 android:text="@string/addMarble" />

 <Button
 android:id="@+id/button2"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentBottom="true"
 android:layout_alignParentRight="true"
 android:layout_marginBottom="82dp"
 android:layout_marginRight="22dp"
 android:onClick="lossMarble"
 android:text="@string/loseMarble" />



</RelativeLayout>

您已经拥有了
RelativeLayout
,因此不需要这样做

 RelativeLayout marble= new RelativeLayout(this);
这将创建一个新的
RelativeLayout
。只需创建您的
文本视图
,并在使用
setContentView()充气后将其添加到此
布局

@凌驾

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ...    
  setContentView(R.layout.activity_enter_app);     
  TextView textView = new TextView(this);

    textView.setTextSize(20);
    textView.setText("Your marble jar will be full when it has "+ targetMarblesInJar +     " marbles. You have " + marblesInJar + " marbles.");
    textView.setTextColor(Color.BLACK);
    marble = (RelativeLayout) findViewById(R.id.relativelayout); // id you gave your root layout
    marble.addView(textView);
在onCreate()方法中有setContentView()方法,该方法将活动的视图设置为其中定义的布局文件。现在,活动的父视图是id为“relativeLayout”的相对布局。您需要将您的textview添加到relativeLayout中,它才能显示出来。其代码如下:

RelativeLayout父项=(RelativeLayout)findViewById(R.id.RelativeLayout)

parent.addView(textView)


它现在应该会显示。

嗯..您没有将称为大理石的相对布局添加到活动的视图中。不客气。如果答案对您有效,请单击答案旁边的复选标记
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ...    
  setContentView(R.layout.activity_enter_app);     
  TextView textView = new TextView(this);

    textView.setTextSize(20);
    textView.setText("Your marble jar will be full when it has "+ targetMarblesInJar +     " marbles. You have " + marblesInJar + " marbles.");
    textView.setTextColor(Color.BLACK);
    marble = (RelativeLayout) findViewById(R.id.relativelayout); // id you gave your root layout
    marble.addView(textView);