我想实现的是这样的:一个mainActivity里有一个按钮 我点击一下,跳到了下一个Activity里(命名为aty1),然后aty1里有一个按钮,我点击一下,执行system.out.println (hello world)语句。然后我就可以在logcat里看到hello world的输出
遇到的问题是:点击mainActivity的button时候提示:抱歉 停止运行。
我的思路和代码是:
首先设置mainActivity 其中btn1可以触发aty1的运行
package com.example.lab1;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=(Button) findViewById(R.id.aty1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i =new Intent(MainActivity.this,Aty1.class);
startActivity(i);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
然后
建立aty1的xml文件 添加一个按钮btn2
package com.example.lab1;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Aty1 extends Activity {
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
btn2=(Button) findViewById(R.id.aty2);
setContentView(R.layout.aty1);
btn2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
System.out.println("hello world");
}
});
}
}
然后修改manifest 添加一下aty1
我不明白为什么会停止运行。 我也试过,如果把aty1里的监听去掉,就可以运行了,求大神指点
------解决思路----------------------
btn2=(Button) findViewById(R.id.aty2);
setContentView(R.layout.aty1);
这两句调换一下顺序,要先setContentView 之后再findViewByid
------解决思路----------------------
1.Activity中本身没有你要的那个View,R.layout.aty1对应的是个xml文件
2.要把xml文件变成view,通过setContentView设置后,Activity帮你解析成View,而Button在这个View解析完成才存在。
3.这时 findViewById(R.id.aty2);才能够得到Button,因为在解析View的时候,Button的Id被设置了R.id.aty2。
你的问题是View还没有,Button也就不存在,那么没有Button,怎么给自己设置id呢?