Fragment Layout, Button onlickListener NullPointerException
Merhabalar,
Yeni android eğitimine başladım.
Eğitim içeriğine göre ilerlemeye çalışıyorum ancak versiyon farklılıklarından dolayı bir yerde takıldım. Eğitimde yeni bir proje oluşturulurken boş bir aktivitede sadece bir tane layout görünüyor. Ancak güncel sdk da ise ekran görüntüsündeki gibi birde fragment layout oluşuyor.
Proje açıldığında fragment layout dosyası varsılan olarak önüme geliyor ve içerisinde aşağıdaki gibi bir hello world texview nesnesi oluşuyor.
[code]
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
[/code]
Uygulama ekran dizaynını ilk derste antalıldığı gibi buradan yapmaya devam ediyorum ve bir buton oluşturuyorum
[code]
<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:text="@string/merhaba" />
[/code]
Varsayılan olarak oluşan main activity class' ım ise şu şekilde
[code]
package com.turkcell.uygulama2;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
@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;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
return rootView;
}
}
}
[/code]
Sonra main actvitity class' ımın onCreate fonsksiyonuna eğitimdeki gibi buton ile ilgili aksiyonları ekiyorum
[code]
Button btn = (Button) findViewById(R.id.myButton);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Merhaba", Toast.LENGTH_LONG).show();
Log.d("MainActivity", "Butona Basıldı");
}
});
[/code]
Ancak uygulamayı çalıştıramıyorum hata verip kapanıyor.
btn.setOnClickListener(new OnClickListener() tam bu satırda NullPointerException hatası geliyor.
anladığım kadarıyla button fragment içerisinde olduğu için null dönüyor.
Bu problem nasıl giderilebilir?
Eğitim içeriğini bu durumu göz önüne alarak güncellemek mümkün mü?
Teşekkürler