Android 在不打开新活动的情况下将textView添加到实际活动

Android 在不打开新活动的情况下将textView添加到实际活动,android,onclick,textview,setcontentview,Android,Onclick,Textview,Setcontentview,我昨天开始学习Android编程,我在网上学习了一些教程,我有一个问题: 我在空白视图中放置了一个图标,当您单击它时,它正在调用我的showText方法,这将导致以下情况: /* Called when the user clicks the android button */** public void showText(View view) { TextView textView = new TextView(this); textView.set

我昨天开始学习Android编程,我在网上学习了一些教程,我有一个问题:

我在空白视图中放置了一个图标,当您单击它时,它正在调用我的
showText
方法,这将导致以下情况:

 /* Called when the user clicks the android button */**

    public void showText(View view) {
        TextView textView = new TextView(this);
        textView.setTextSize(25);
        textView.setText("Hurray! I'm an android!");
        setContentView(textView);
}
当然,我可以启动一个新的意图,并将其传递给一个完整的新活动,如
showTextActivity
或类似的活动,但我想知道是否有可能在当前视图中显示此文本,其中显示了我的图标

当我用
setContentView(textView)
更改
ContentView
时,我的图标(一个小小的安卓图形)消失了


是否有类似的
add方法
,它将
textView
添加到我的
main.xml
中,这样布局会发生变化,并有一个匹配的
刷新方法
使我的android图形和文本对我可见

在可见性参数设置为“隐藏”或“消失”的情况下,可以将TextView添加到布局中-当可见性消失时,控件不会在父控件内保留空间。第二件事是引用父容器,例如,假设您有一个称为mainContainer的线性布局,您可以这样做:
LinearLayout ll=(LinearLayout)findViewById(R.id.mainContainer);
ll.AddChild(文本视图)


通过这种方式,您可以通过编程方式创建和操作UI,但要小心,很难引用此类控件并保持其状态编辑:
还要为动态创建的视图设置参数,您需要引用适当的LayoutParam类。如果控件的容器是LinearLayout,则需要应用LinearLayoutParams等。祝您好运

这里是MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;

public class MainActivity extends Activity {
    private LinearLayout layout;
    private ImageView imageView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        layout=(LinearLayout)findViewById(R.id.main);
        imageView=(ImageView)findViewById(R.id.imageView1);
        imageView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                LayoutParams lparams = new LayoutParams(
                           LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                        TextView tv=new TextView(MainActivity.this);
                        tv.setLayoutParams(lparams);

                        tv.setText("test");
                        layout.addView(tv);
            }
        });
    }
}
我的activity_main.xml是

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/main"
android:gravity="center"
android:orientation="vertical">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher" />

</LinearLayout>


addContentView()
方法。@nobalG有两个
setContentView()
重载接受
View
参数。@MikeM.)谢谢你指出,我没有意识到这一点;但是我们在哪里需要您指定的setContentView()?…在某个框架中或???@nobalG我不确定我是否正确理解了您的问题,但是如果您想为
活动
的布局动态创建
视图
,而不是使用静态xml定义,那就是您要使用的。@MikeM。谢谢……:)