저는 Android Studio에서 매우 새로 워서 도움이 필요한 것이 많습니다.FindViewByID - 널 포인터 예외! [ANDROID STUDIO]
이들 중 하나는 성가신 findViewById()
입니다. (다시 가장 중요한 부분)
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
나도 알아, 당신의 많은 생각 kreiscalc
을 그 다음은
MainActivity.java
public class MainActivity extends ActionBarActivity {
public Button kreisd;
public Button kugeld;
public Button kreiscalc;
public Context con;
public EditText radius_eingabe;
public TextView kreis_ergebnis_vol;
public TextView kreis_ergebnis_G;
public String str1;
public double st1;
public double G_kreis;
public static final double PI = 3.141592653589793d;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
kreisd = (Button)findViewById(R.id.kreis);
kugeld = (Button)findViewById(R.id.kugel);
kreiscalc = (Button)findViewById(R.id.calc_kreis);
kreisd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
con = MainActivity.this;
setContentView(R.layout.kreislay);
}
});
kreiscalc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
con = MainActivity.this;
str1 = radius_eingabe.toString();
st1 = Double.parseDouble(str1);
G_kreis = PI*st1*st1;
kreis_ergebnis_G = (TextView)findViewById(R.id.G_kreis);
kreis_ergebnis_G.setText("" + G_kreis);
}
});
}`
내의 가장 중요한 부분입니다 , (오류를 일으키는 버튼)이 존재하지 않습니다! 하지만 그렇습니다. 나는 두 가지 다른 레이아웃을 가지고 있습니다 : 하나는 다른 모든 것들이 있고, 다른 하나는 kreiscalc
입니다. 그러면 findViewById()
- 메소드는 첫 번째 (및 주) 레이아웃에있는 ID 만 찾습니다. 도움이 필요해. 주목 해 주셔서 감사합니다!
편집 : 알았어요! LayoutInflanter를 사용하기 만하면됩니다. SO :
final LayoutInflanter lf = getLayoutInflanter(); View view2 = lf.inflate(R.layout.YOURLAYOUTNAME, null); Button kreiscalc = (Button) view2.findViewById(R.id.calc_kreis);
잘 kreiscalc가 null이므로 calckreis에 ID가 없거나 프로젝트를 다시 작성해야합니다. c) _이 문제를 일으킬 수 있습니다. – tung
편집 : 예, kreiscalc를 검색합니다. 이 때문에 메인 레이아웃 :'setContentView (R.layout.activity_main);' – olyv