2014-12-02 123 views
-1

我有一个MainActivity最初是空的。当我点击“加号”按钮时,会打开一个DialogFragment,其中有两个按钮(“取消”和“继续”)和一个EditText。在EditText中,您可以编写项目的名称(本例为项目1),然后单击“继续”,您可以在运行时创建“项目1”,“播放”按钮和TextView“hello”下面的图片。如何在按钮旁边放置一个TextView

我想TextView“hello”被定位在同一行上的“播放”按钮旁边。

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。 任何人有任何想法?

+0

对于LinearLayout,使用id = button_row将android:orientation =“vertical”更改为android:orientation =“horizo​​ntal” – 2014-12-02 11:10:08

回答

4

利用水平的Android将ButtonTextViewLinearLayoutorientation="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); 
+0

谢谢。有用! – Riccardo 2014-12-02 14:49:58

+0

@Riccardo设置答案为接受比,TNX – Suvitruf 2014-12-02 14:51:45

+0

我不能...我需要15声望投票了你的答案 – Riccardo 2014-12-02 16:13:57

1

:定向

<?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> 
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); 

现在,您将在其左侧获得一个带有文本和图标的按钮。

相关问题