将 TextView 添加到 LinearLayout 不起作用
Adding TextView to LinearLayout not working
我有一个滚动视图,它将逐行列出程序的状态(onCreate、onPause、onResume 等)。每次状态发生变化时,TextView 的内容都会被覆盖而不是换行。
我已经尝试了几种方法,但我真的不确定它有什么问题。
这是我的 java 代码::
int numc= 0;
int nums= 0;
int numr= 0;
int nump= 0;
int numst=0;
int numd= 0;
TextView numCreate;
TextView numStart;
TextView numResume;
TextView numPause;
TextView numStop;
TextView numDestroy;
TextView tCreate;
TextView tStart;
TextView tResume;
TextView tPause;
TextView tStop;
TextView tDestroy;
LinearLayout linear;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lifecycle);
numc++;
Log.d("STATE", "onCreate executed");
displayCount();
linear= findViewById(R.id.linearLay);
TextView t1= new TextView(this);
t1.setText("onCreate executed");
linear.addView(t1);
}
@Override
public void onResume() {
super.onResume();
setContentView(R.layout.activity_lifecycle);
numr++;
Log.d("STATE", "onRes executed" + numr);
displayCount();
linear=findViewById(R.id.linearLay);
TextView t2= new TextView(this);
linear.addView(t2);
t2.setText("onResume executed");
}
@Override
public void onPause() {
super.onPause();
setContentView(R.layout.activity_lifecycle);
nump++;
Log.d("STATE", "onPause executed" + nump);
displayCount();
linear=findViewById(R.id.linearLay);
TextView t3= new TextView(this);
linear.addView(t3);
t3.setText("onPause executed");
Log.d("INCREMENT", String.valueOf(linear.getChildCount()));
}
试试这个
从 onResume()
onPause()
中删除 setContentView(R.layout.activity_lifecycle);
示例代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lifecycle);
numc++;
Log.d("STATE", "onCreate executed");
displayCount();
TextView t1= new TextView(this);
t1.setText("onCreate executed");
linear.addView(t1);
}
@Override
public void onResume() {
super.onResume();
numr++;
Log.d("STATE", "onRes executed" + numr);
displayCount();
TextView t2= new TextView(this);
linear.addView(t2);
t2.setText("onResume executed");
}
@Override
public void onPause() {
super.onPause();
nump++;
Log.d("STATE", "onPause executed" + nump);
displayCount();
TextView t3= new TextView(this);
linear.addView(t3);
t3.setText("onPause executed");
Log.d("INCREMENT", String.valueOf(linear.getChildCount()));
}
您应该从 onResume()
和 onPause()
中删除 setContentView(R.layout.activity_lifecycle);
。
为 TextView
设置文本时,请使用 "\n
,
例如
t1.setText("onCreate executed"+ "\n");
去掉暂停事件中的setContentView,你可以在LinearLayout中添加这样的Textview
TextView htext =new TextView(this);
textView.setText("Any Text");
textView.setId(123);
textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
然后
linearlayout.addView(textView);
我有一个滚动视图,它将逐行列出程序的状态(onCreate、onPause、onResume 等)。每次状态发生变化时,TextView 的内容都会被覆盖而不是换行。
我已经尝试了几种方法,但我真的不确定它有什么问题。
这是我的 java 代码::
int numc= 0;
int nums= 0;
int numr= 0;
int nump= 0;
int numst=0;
int numd= 0;
TextView numCreate;
TextView numStart;
TextView numResume;
TextView numPause;
TextView numStop;
TextView numDestroy;
TextView tCreate;
TextView tStart;
TextView tResume;
TextView tPause;
TextView tStop;
TextView tDestroy;
LinearLayout linear;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lifecycle);
numc++;
Log.d("STATE", "onCreate executed");
displayCount();
linear= findViewById(R.id.linearLay);
TextView t1= new TextView(this);
t1.setText("onCreate executed");
linear.addView(t1);
}
@Override
public void onResume() {
super.onResume();
setContentView(R.layout.activity_lifecycle);
numr++;
Log.d("STATE", "onRes executed" + numr);
displayCount();
linear=findViewById(R.id.linearLay);
TextView t2= new TextView(this);
linear.addView(t2);
t2.setText("onResume executed");
}
@Override
public void onPause() {
super.onPause();
setContentView(R.layout.activity_lifecycle);
nump++;
Log.d("STATE", "onPause executed" + nump);
displayCount();
linear=findViewById(R.id.linearLay);
TextView t3= new TextView(this);
linear.addView(t3);
t3.setText("onPause executed");
Log.d("INCREMENT", String.valueOf(linear.getChildCount()));
}
试试这个
从 onResume()
onPause()
setContentView(R.layout.activity_lifecycle);
示例代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lifecycle);
numc++;
Log.d("STATE", "onCreate executed");
displayCount();
TextView t1= new TextView(this);
t1.setText("onCreate executed");
linear.addView(t1);
}
@Override
public void onResume() {
super.onResume();
numr++;
Log.d("STATE", "onRes executed" + numr);
displayCount();
TextView t2= new TextView(this);
linear.addView(t2);
t2.setText("onResume executed");
}
@Override
public void onPause() {
super.onPause();
nump++;
Log.d("STATE", "onPause executed" + nump);
displayCount();
TextView t3= new TextView(this);
linear.addView(t3);
t3.setText("onPause executed");
Log.d("INCREMENT", String.valueOf(linear.getChildCount()));
}
您应该从 onResume()
和 onPause()
中删除 setContentView(R.layout.activity_lifecycle);
。
为 TextView
设置文本时,请使用 "\n
,
例如
t1.setText("onCreate executed"+ "\n");
去掉暂停事件中的setContentView,你可以在LinearLayout中添加这样的Textview
TextView htext =new TextView(this);
textView.setText("Any Text");
textView.setId(123);
textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
然后
linearlayout.addView(textView);