如何以编程方式显示TextView?

时间:2018-06-12 18:23:30

标签: android

我有一个名为RelativeLayout的{​​{1}},我将其发表意见。当我尝试current_layout时,不会显示任何内容。但是,添加addView(TextView)时,它可以正常工作。为什么我的ImageView没有显示?

TextView

我也在黑色背景上添加了public static void draw_shard(int x, int y, int amount_collected){//X and Y are GAMESURFACE values. Needs to increment by gamesurface y. ImageView shard = create_iv(); // Creates a new instance of an ImageView (parameter is the context of MainActivity) shard.setBackgroundDrawable(shard_icon); shard.setX(x); shard.setY(y+ImageLoader.get_score_bar_height()); TextView tv = new TextView(MainActivity.current_context); tv.setX(shard.getX() + shard.getWidth()); tv.setY(shard.getY()); tv.setTypeface(Variables.joystix); tv.setTextSize(shard.getHeight()); tv.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT)); tv.setText("+" + amount_collected); tv.setTextColor(Color.WHITE); current_layout.addView(shard); current_layout.addView(tv); }

5 个答案:

答案 0 :(得分:1)

问题在于shard.getWidth()shard.getHeight(),它们返回0.

答案 1 :(得分:0)

另一种简单的方法是:

在布局文件中添加TextView并将其可见性设置为已消失,当您需要显示TextView时,只需更改TextView的可见性。

XML文件的示例代码:

<TextView
    android:id="@+id/textview"
    android:layout_height="wrap_content"
    android:layout-width="wrap_content"
    android:visibility="gone">
    <!-- Add other attributes too -->

当您需要TextView时,请添加以下代码:

findViewById("textview").setVisibility(View.VISIBLE);
findViewById("textview").setText("" + amount_collected);

答案 2 :(得分:0)

但是为什么要使用java代码添加TextView

您可以轻松地使用XML进行操作。

<TextView
    android:layout_width="wrap_content"
    android:id="@+id/textView"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:background="@color/colorPrimary"
    android:textColor="@color/colorPrimary" />

答案 3 :(得分:0)

// Create LinearLayout
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);

// Create TextView
TextView product = new TextView(this);
product.setText(" Product");
ll.addView(product);

请试试。

答案 4 :(得分:0)

它将帮助您了解

LinearLayout linearLayout = new LinearLayout(this);
setContentView(linearLayout);
linearLayout.setOrientation(LinearLayout.VERTICAL); 

TextView textView = new TextView(this);
textView.setText("Your Text that you want to add");
linearLayout.addView(textView);

谢谢