【发布时间】:2015-03-27 14:46:40
【问题描述】:
我尝试使用一个Button 开发一个简单的Android 应用程序,每次点击都会生成新的TextViews。
import android.app.Activity;
import android.os.Bundle;
import android.text.Layout;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class CreateTV extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button mCreate = (Button)findViewById(R.id.btnCreate);
mCreate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
((Button) v).setText("Clicked");
TextView mTV1 = new TextView(this);
}
});
}
}
我的代码错误是因为:
TextView mTV1 = new TextView(this);
我可以找到some similar examples,它以编程方式在onCreate() 中生成对象。但我想在onClick() 中生成和修改新对象。
有人可以帮忙吗?
【问题讨论】:
-
(this)不起作用的原因是因为您在按钮的onClick方法中,所以“this”指的是点击监听器,而不是活动。尝试将其更改为new TextView(getActivity()),看看它的工作方式是否不同。 -
使用
CreateTV.this。