如何在按钮旁边放置TextView

时间:2014-12-02 11:06:24

标签: java android android-layout textview

我的MainActivity最初为空。当我点击"加"按钮,您打开DialogFragment,其中有两个按钮("取消"和"继续")和EditText。在EditText中,您可以编写项目名称(本例中为项目1),然后单击"继续"你可以在运行时创建"项目1","播放"按钮和TextView"你好"放置如下图所示。

我想要TextView"你好"位于" play"旁边。按钮在同一行。

enter image description here

这是我的代码:

按钮的方法"继续":

    @Override
    public void onDialogPositiveClick(DialogFragment dialog) { 
        EditText editText = (EditText) dialog.getDialog().findViewById(R.id.project_name);
        String projectName = editText.getText().toString();

        LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            lp1.gravity = Gravity.END;

        Button projectButton = new Button(this);
            projectButton.setText(projectName);
            projectButton.setLayoutParams(lp1);
            projectButton.setOnClickListener(projectListener);

        LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            lp2.gravity = Gravity.START;
            lp2.setMarginStart(10); 

        Button playButton = new Button(this);
            playButton.setBackgroundResource(R.drawable.play_button_green);
            playButton.setLayoutParams(lp2);

        TextView buttonView = new TextView(this);
            buttonView.setText("Hello");

        LinearLayout linearLayout = (LinearLayout) findViewById(R.id.button_row);
            linearLayout.addView(projectButton);
            linearLayout.addView(playButton);
            linearLayout.addView(buttonView);
    }

MainActivity XML布局:

<RelativeLayout 

    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <LinearLayout
        android:id="@+id/button_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" >
    </LinearLayout>


</RelativeLayout>

必须动态创建整个布局,然后使用java代码而不是XML。 有人有什么想法吗?

3 个答案:

答案 0 :(得分:4)

ButtonTextView放在LinearLayoutorientation="horizontal"

 LinearLayout ll = new LinearLayout(this);
 ll.setOrientation(LinearLayout.HORIZONTAL);
 ll.addView(playButton);
 ll.addView(buttonView);

 LinearLayout linearLayout = (LinearLayout) findViewById(R.id.button_row);
 linearLayout.addView(projectButton);
 linearLayout.addView(ll);

答案 1 :(得分:1)

使用横向android:orientation

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 1" />

        <TextView
            android:id="@+id/textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="textView" 
            android:layout_weight="1"/>

    </LinearLayout>

答案 2 :(得分:1)

您可以使用单个按钮,而不是使用按钮和文本视图。

 Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );    
 Button playButton = new Button(this); 
 playButton.setText("Hello"); 
 playButton.setCompoundDrawablesWithIntrinsicBounds( img, null, null, null ); 
 playButton.setLayoutParams(lp2);

现在你会在左侧看到一个带有文字和图标的按钮。