2014-12-22 2 views
1

Я успешно добавлен TextView программно ... Но моя проблема в том, как удалить TextView По программным ... Вот мой код



MainActivity.java
Добавить и Удалить TextView программно в Android

package com.example.textviewdemo; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.LinearLayout; 
import android.widget.TextView; 
<br> 
public class MainActivity extends ActionBarActivity { 

    private TextView addTv; 
    private EditText edt; 
    private Button add, delete; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     edt = (EditText) findViewById(R.id.editText1); 
     add = (Button) findViewById(R.id.button1); 
     delete = (Button) findViewById(R.id.button2); 
     final LinearLayout ll = (LinearLayout) findViewById(R.id.LinearLayout); 

     add.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       int no = Integer.parseInt(edt.getText().toString()); 
       for (int i = 1; i <= no; i++) { 
        addTv = new TextView(MainActivity.this); 
        addTv.setText("TextView " + i); 
        addTv.setId(i); 
        ll.addView(addTv); 
       } 
      } 
     }); 
     delete.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       int no1 = Integer.parseInt(edt.getText().toString()); 
       for (int i = 1; i <= no1; i++) { 
        ll.removeView(addTv); 
       } 
      } 
     }); 
    } 
} 





При нажатии на кнопку удалить это только удалить последнюю TextView только ..
Что мне делать?

ответ

1

Храните все свои текстовые элементы в массиве и делайте то, что хотите. Теперь addTv - последний созданный TextView. Кроме того, если вы нажмете delete перед добавлением, вы получите NullPointerException.

Смотрите также: http://developer.android.com/reference/android/view/ViewGroup.html#removeViewAt(int) и http://developer.android.com/reference/android/view/ViewGroup.html#removeViewsInLayout(int,%20int)

1
for(int i = 0; i<ll.getChildrenCount(); i++){ 
    if(ll.getChildAt(i) instanceof TextView){ 
     ll.removeView(ll.getChildAt(i)); 
    } 
} 

Найдет все дети ЛЛ и удалить их, если они являются экземплярами TextView

Смежные вопросы