2014-12-02 119 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); 

現在,您將在其左側獲得一個帶有文本和圖標的按鈕。

相關問題