android开发中button按钮不起作用,btn不响应点击事件,检查没有发现代码的问题。

activity源代码如下:publicclassMainActivityextendsActivity{privateTextViewtv;privateEditTex... activity源代码如下:
public class MainActivity extends Activity {
private TextView tv;
private EditText et;
private Button btn;
private String text;
public static Socket socket;
private DataOutputStream dout;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if(tv==null)tv=(TextView)findViewById(R.id.TextView);
if(et==null)et=(EditText)findViewById(R.id.EditText);
if(btn==null)btn=(Button)findViewById(R.id.Button);
btn=new Button(this);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
doclick();
}
});
}
public void doclick(){
text=(String)btn.getText();
ConnectToServer();
intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
this.finish();
}
public void ConnectToServer(){
try{
socket=new Socket("192.168.1.100",8888);
dout=new DataOutputStream(socket.getOutputStream());
dout.writeUTF(text);
dout.flush();
dout.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
展开
 我来答
zhouzunlai
推荐于2017-11-26 · 超过62用户采纳过TA的回答
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:104万
展开全部
你既然已经 findViewById了你的button了,你又去实例化一个btn,那这样你的btn其实是你new的那个,但是你在你的Activity上看到的是你findViewById的那个Button,你new的btn由于你没设置他的位置,所以你看不到!
澍哥好
2014-03-27 · TA获得超过386个赞
知道小有建树答主
回答量:379
采纳率:100%
帮助的人:360万
展开全部
     if(btn==null)btn=(Button)findViewById(R.id.Button);
     btn=new Button(this);

你这里有问题你这句重新创建了一个button对象,当然点击button没有反映了

更多追问追答
追问
但是如果我没有第二句,下一句给这个button添加按钮这一行时程序又要报空指针错误
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
doclick();
}
});
}
这是哪里除了问题,请指教!谢谢!
追答
那就是你其他地方有问题了。 看一下XML文件 不行的话 加我QQ745834695
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式