2015-08-24 128 views
0

我的主屏幕顯示來自用戶輸入的信息。以編程方式將TextView添加到現有的XML文件

現在這個屏幕上的內容是使用XML除了在左上角的「清涼」的TextView補充。現在我想要一種從用戶獲取信息並將其添加到第一行信息下的方法。

我已經整理出來的是獲取用戶輸入的問題實際上越來越佈局完美的畫面。現在我以編程方式添加了「Kool」TextView,但佈局錯誤。

我怎樣才能使它所以所以「庫爾」的TextView是日期「20/08/15」的下方。每次使用setHeight方法時,都會使TextView不可見。

代碼:

public class AnalysisPage extends Activity { 

Button savebutton,cancelbutton; 
EditText dateinput,weightinput,repsinput; 
int dd,mm,yy; 

private TextView texty = null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.dumbbellpress); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu){ 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main_activity_actions,menu); 
    return super.onCreateOptionsMenu(menu); 

} 
@Override 
public boolean onOptionsItemSelected(MenuItem item){ 


    switch (item.getItemId()){ 
     case R.id.addinfo: 
      Dialog dialog = new Dialog(AnalysisPage.this); 
      dialog.setTitle(" Enter your STATS brah"); 
      dialog.setContentView(R.layout.datainput); 

      dateinput = (EditText)dialog.findViewById(R.id.editDate); 
      final Calendar c = Calendar.getInstance(); 
      dd = c.get(Calendar.DAY_OF_MONTH); 
      mm = c.get(Calendar.MONTH); 
      yy = c.get(Calendar.YEAR); 

      dateinput.setText(new StringBuilder().append(dd).append("/").append(mm+1).append("/").append(yy)); 

      dialog.show(); 


      weightinput = (EditText)dialog.findViewById(R.id.editWeight); 
      repsinput = (EditText)dialog.findViewById(R.id.editReps); 

      savebutton = (Button)dialog.findViewById(R.id.btnSave); 
      cancelbutton = (Button)dialog.findViewById(R.id.btnCancel); 

      savebutton.setOnClickListener(new View.OnClickListener() { 



       @Override 
       public void onClick(View view) { 
        RelativeLayout views = (RelativeLayout)findViewById(R.id.xxx); 

        texty = new TextView(AnalysisPage.this); 
        texty.setTextSize(28); 
        texty.setText("Kool"); 



        views.addView(texty); 

       } 
      }); 

      cancelbutton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        dialog.cancel(); 
       } 
      }); 

      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

XML代碼:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" android:weightSum="1" android:id="@+id/statslayout"> 

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" android:id="@+id/xxx"> 

    <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="100dp" android:id="@+id/tableRow3" android:layout_alignParentTop="true" 
      android:layout_alignParentStart="true" android:layout_marginStart="72dp"> 
     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="Dumbbell Press Stats!" 
       android:id="@+id/textView"/> 
    </TableRow> 

    <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="100dp" android:id="@+id/tableRow" 
      android:layout_alignParentTop="true" android:layout_alignEnd="@+id/tableRow3" 
      android:layout_marginTop="49dp" android:layout_alignBottom="@+id/tableRow3"> 
     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="Date" 
       android:layout_weight="0.22" 
       android:id="@+id/btnDate" 
       /> 
     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text=" Weight" 
       android:layout_weight="0.22" 
       android:id="@+id/txtWeight" 
       /> 

     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text=" Reps" 
       android:layout_weight="0.22" 
       android:id="@+id/btnReps" 
       /> 


    </TableRow> 
    <TableRow 
      android:layout_width="wrap_content" 
      android:layout_height="200dp" 
      android:layout_below="@+id/tableRow" android:layout_alignParentStart="true" android:id="@+id/tableRow4"> 
     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="20/08/15" 
       android:id="@+id/textView2" android:layout_below="@+id/tableRow" 
       android:layout_alignStart="@+id/tableRow3"/> 
    </TableRow> 
    <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text=" 8" 
      android:id="@+id/textView7" 
      android:layout_marginEnd="82dp" android:layout_below="@+id/tableRow" 
      android:layout_alignEnd="@+id/tableRow3"/> 
    <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="50kg" 
      android:id="@+id/textView6" 
      android:layout_marginStart="43dp" 
      android:layout_below="@+id/tableRow3" android:layout_toEndOf="@+id/tableRow4"/> 
</RelativeLayout> 

因爲我這個月底(夢想)的目標是通過使用Java我讓其中包含日期完成完全格式化行,重量和代表在他們尊敬的專欄。和多行或完美格式化使用Java。

圖像(這是在XML未用Java)

回答

2

而不是增加的TextView(多個)程序,使用ListView。這將完全解決您的問題。您可以使用ListView將自定義的適配器setAdapter()作爲適配器(提供列表數據),並在每次單擊添加新項目的按鈕時添加新的行元素。這將意味着替換您的TableRow位,並改用RelativeLayout中的ListView。此外,你可以添加一個自定義標題視圖到ListView來替換你已經使用的標題(來源:addHeaderView()

看着你的行,看起來他們有字段:「日期」,「重量」和「代表」。這意味着要創建一個具有這三個字段的自定義Java對象,並創建ListView適配器元素的對象類型。如果您真的需要它,我可以提供初學者代碼,但它可以幫助您最好地使用我提供的文檔來教您如何使用ListView。

教程:ListView tutorial

編輯:另一個好處:ListView控件句柄允許用戶滾動的,更行添加到這個列表你的事。更多的理由只是選擇到ListView :)

+0

好,非常感謝我一直在尋找通過的文件。你可以只提供一點啓動代碼嗎?就這樣它顯示標題部分(日期,重量,代表)。 – bob9123

相關問題