Shane
Shane

Reputation: 758

How can we create dynamic textview?

how to create the textview in code not in xml file. It is because number of textviews will be changing in my application according to some integer.

Upvotes: 3

Views: 14139

Answers (6)

mchd
mchd

Reputation: 3163

You use TextView textView = new TextView(CurrentActivity.this);

and then you add setter arguments that come with the TextView class

Upvotes: 0

user4448157
user4448157

Reputation:

Code is here

final int c = 12;
final TextView[] mtext = new TextView[c]; 
for (int i = 0; i < c; i++) {
TextView rowtxt = new TextView(this);
rowtxt.setText("Hello" + i);
myLinearLayout.addView(rowtxt);
myTextViews[i] = rowtxt;
myTextViews[i].setOnClickListener(onclicklistener);//textview click

}

OnClickListeners code is here

OnClickListener onclicklistener = new OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    if(v == myTextViews[0]){
        //do whatever you want....
    }
}

};

Hope it is helpful for you

Upvotes: 0

Thkru
Thkru

Reputation: 4199

Maybe thats what you need:

LinearLayout lin = (LinearLayout) findViewById(R.id.myLinear);

  for (int i = 0; i <= 10 ; i++)
  {
      TextView myText = new TextView(this);
      myText.setText("textview# "+ i);
      lin.addView(myText);
  }

Upvotes: 1

Dhruvil Patel
Dhruvil Patel

Reputation: 2930

private LinearLayout ll;
private TextView tv;


      // in oncreate()
onCreate()
{
        int WrapWidth = LinearLayout.LayoutParams.WRAP_CONTENT;
        int WrapHeight = LinearLayout.LayoutParams.WRAP_CONTENT;

        tv = new TextView(this);

        ll.addView(tv,WrapWidth,WrapHeight);


}

Upvotes: 0

Nishant
Nishant

Reputation: 32233

This is the code to create TextView Dynamically

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

for (int i = 0; i < 3; i++) {

TextView dynamicTextView = new TextView(this);
dynamicTextView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
        dynamicTextView.setText("NewYork");
        layout.addView(tstate);

}

Upvotes: 5

ρяσѕρєя K
ρяσѕρєя K

Reputation: 132992

Something like the following should be what you need:

final int N = 10; // total number of textviews to add

final TextView[] myTextViews = new TextView[N]; // create an empty array;

for (int i = 0; i < N; i++) {
    // create a new textview
    final TextView rowTextView = new TextView(this);

    // set some properties of rowTextView or something
    rowTextView.setText("This is TextView #" + i);

    // add the textview to the linearlayout
    myLinearLayout.addView(rowTextView);

    // save a reference to the textview for later
    myTextViews[i] = rowTextView;
}

Upvotes: 0

Related Questions