我昨天开始使用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);
}
当然,我可以启动一个新的Intent并将其传递给一个像showTextActivity
这样的完整新活动或类似的东西,但我想知道是否有可能将此文本显示在当前视图,显示我的图标。
当我用ContentView
更改setContentView(textView)
时,我的图标(一个小小的机器人形象)消失了。
是否有类似add-method
的内容,会将textView
添加到我的main.xml
,以便布局更改并匹配refresh-method
以使我的Android形象和文字对我来说可见?
答案 0 :(得分:0)
您可以将TextView添加到布局,并将Visibility参数设置为Hidden或Gone - 当可见性消失时,Control不会在父级内部保留空间。第二件事是引用父容器例如让你说你有线性布局叫做mainContainer你可以这样做:
LinearLayout ll = (LinearLayout)findViewById(R.id.mainContainer);
ll.AddChild(textView)
通过这种方式,您可以以编程方式创建和操作UI,但要充分注意参考此类控件并保留其状态编辑:
另外设置参数动态创建的视图,您需要引用适当的LayoutParam类。如果控件的容器是LinearLayout,则需要应用LinearLayoutParams等。祝你好运!
答案 1 :(得分:0)
这是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>