Android如何以编程方式并排设置2个TextView?

时间:2015-05-18 12:01:15

标签: java android textview

如何在Java中并排显示两个textview? 我成功地用xml做了!

我的代码:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView 
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12dip"
        android:layout_marginRight="10dp"
        android:layout_alignParentLeft="true"
        android:textColor="#ffffff" />

    <TextView 
        android:id="@+id/value"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12dip"
        android:layout_alignParentRight="true"
        android:textColor="#ffffff" />

</RelativeLayout> 

5 个答案:

答案 0 :(得分:4)

在我的LinearLayout中设置activity_layout

    LinearLayout lm=(LinearLayout) findViewById(R.id.Linearlayout1);

使LinearLayout类型为水平,动态。

     LinearLayout llh=new LinearLayout(context);
     llm.setOrientation(LinearLayout.HORIZONTAL);

然后动态创建了两个TextView

     TextView tv1=new TextView(context);
     TextView tv2=new TextView(context);

最后将这两个TextView添加到水平LinearLayout(我们动态创建),然后将相同的布局添加到xml布局。

llh.addView(tv1);
llh.addView(tv2);
lm.addView(llh);

我希望它有所帮助。

答案 1 :(得分:0)

试试这个, Java代码,

layout = (LinearLayout)findViewById(R.id.mainLay);

    TextView tv1 = new TextView(ActivityName.this);
    tv1.setText("TextView 1");
    LinearLayout.LayoutParams childParam1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
    childParam1.weight = 0.5f;
    tv1.setLayoutParams(childParam1);

    TextView tv2 = new TextView(ActivityName.this);
    tv2.setText("TextView 2");
    LinearLayout.LayoutParams childParam2 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    childParam1.weight = 0.5f;
    tv2.setLayoutParams(childParam2);

    layout.addView(tv1);
    layout.addView(tv2);

和xml代码,

<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"
tools:context=".MainActivity">


<LinearLayout
    android:weightSum="1"
    android:id="@+id/mainLay"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"></LinearLayout>
</LinearLayout>

这应该有用。

答案 2 :(得分:0)

第一个解决方案: 使用在线转换器 [http://www.xmltojava.com/][1]

第二个解决方案: 夸大你的布局

LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
View layoutView = mInflater.inflate(R.rowLayout, null);
TextView tvOne=(TextView) layoutView.findViewById(R.id.tvOne);

答案 3 :(得分:0)

这是我尝试做的事情

        final LinearLayout ll = (LinearLayout) findViewById(R.id.container_LV);


                    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams
                            (
                            RelativeLayout.LayoutParams.MATCH_PARENT,
                            RelativeLayout.LayoutParams.MATCH_PARENT
                            );
                    //ll.setOrientation(orientation);
                    // params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,0);
                        LinearLayout llh=new LinearLayout(getApplicationContext());
                        ll.setOrientation(LinearLayout.HORIZONTAL);

                    for (int i = 0; i < fields.length(); i++) 
                    {

                        final TextView txtLabel = new TextView(getApplicationContext());
                        final TextView txtValue = new TextView(getApplicationContext());

                        jsonLabel = fields.getJSONObject(i).getString(TAG_LABEL) ; //+ "\n";
                        jsonValue = fields.getJSONObject(i).getString(TAG_VALUE) ; //+ "\n";

                        //txtLabel.setBackgroundColor(Color.YELLOW);
                        //txtValue.setBackgroundColor(Color.YELLOW);
                        //txtLabel.setWidth(pixels);

                        txtLabel.setLayoutParams(params);
                        txtValue.setLayoutParams(params);


                        txtValue.setGravity(Gravity.RIGHT);

                        txtLabel.setGravity(Gravity.LEFT);

                        //params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,0);

                        txtLabel.setText(jsonLabel);
                        txtValue.setText(jsonValue);

                        txtLabel.setTextColor(Color.WHITE);
                        txtValue.setTextColor(Color.WHITE);

                        //txtLabel.


                        llh.addView(txtLabel);
                        llh.addView(txtValue);

                    }

                        ll.addView(llh);

答案 4 :(得分:0)

关键是在将A设置为android:layout_weight后才能使用android:layout_width,试试这个

"0dp"