2016-12-31 144 views
0

我想創建一個按鈕點擊的文本視圖,這樣每次按下按鈕時都會創建一個新的文本視圖。在每個按鈕上創建一個文本視圖點擊

問題:我只得到單個textview創建,因爲當我再次按下按鈕時,沒有創建任何東西。

代碼:

//In a class I defined a button 
Button button; 

//I set the button to on click listener 

button.setOnClickListener(new View.OnClickListener{ 
@override 
public void onClick(View view){ 
//now I want to create text view dynamically 
TextView textview= new TextView(myactivity.this); 
textview.setText("new text"); 

//the problem is that this method helps me make only one text I want to 
// create text view each time the button pressed. 


} 
}); 

感謝

編輯:我沒有忘記設置在佈局視圖,並給予它的參數,我不能發現問題,我產生一個TextView的不管我做您要在XML中添加的TextView

+0

你做錯了,你只是更換舊一個 –

+0

@Divyesh的TextView您能不能給一個解決方案嗎? –

+0

等待一段時間 –

回答

0

先加布局:

 <LinearLayout 
       android:id="@+id/anything" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical"/> 
     </LinearLayout> 

現在活動:

 LinearLayout lin; 
     lin = (LinearLayout) findViewById(R.id.anything); 
     lin.removeAllViews(); 

button.setOnClickListener(new View.OnClickListener{ 
@override 
public void onClick(View view){ 

    TextView txtName = new TextView(MainActivity.this); 
    txtName.setId(28); 
    txtName.setText("new text"); 

    lin.addView(txtName); 

} 
}); 
0

目前,您的代碼只是用一個新的替換舊的textview。

要解決此問題,請從您的layout.xml中獲取要在其中顯示TextView的佈局。

那麼你的TextView添加到佈局是這樣的:

LinearLayout mLayout = (LinearLayout)findViewById(R.id.mLayout); 
Button bn = (Button) findViewById(R.id.button2); 
bn.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     TextView tv1 = new TextView(MainActivity.this); 
     tv1.setText("Show Up"); 
     mLayout.addView(tv1); 
     } 
}); 
+1

你爲什麼使用getApplicationContext()而不是Activity.this。 –

+0

謝謝,現在修復它。 – Aryan

0

創建XML,

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 
     <LinearLayout 
      android:id="@+id/llTextviews" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="vertical" > 
     </LinearLayout> 
     <Button android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Hello, I am a Button" /> 
    </LinearLayout> 
</ScrollView> 

在Java類,

LinearLayout layout; 
LinearLayout linearlayout = new LinearLayout(ACTIVITY); 

LayoutParams LLParams = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT_PARENT); 
linearlayout .setLayoutParams(LLParams); 

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

button.setOnClickListener(new View.OnClickListener{ 
@override 
public void onClick(View view){ 

    layout.removeAllViews(); 

    TextView txtName = new TextView(MainActivity.this); 
    txtName.setId(28); 
    txtName.setText("new text"); 

    linearlayout.addView(txtName); 
    layout.addView(linearLayout); 

    } 
}); 
0

爲了動態生成視圖ID使用表格API 17

generateViewId()

像這樣

@Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       EditText editText = new EditText(MainActivity.this); 
       editText.setId(editText.generateViewId()); 
       editText.setHeight(50); 
       editText.setWidth(50); 
       ll.addView(editText); 

      } 

private EditText editText(String hint) { 
       EditText editText = new EditText(this); 
       editText.setId(Integer.valueOf(hint)); 
       editText.setHint(hint); 
       editTextList.add(editText); 
       return editText; 
      } 
相關問題