- Forum-Beiträge: 7
21.08.2012, 09:14:42 via Website
21.08.2012 09:14:42 via Website
ich würde gerne, weil ich in mehreren layouts die selben Funktionen benutze, diese funktion quasi in ein "Modul" auslagern.
Habe dazu mal ein test gemacht in dem ich eine neue java datei angelegt habe und diese dort eingefügt habe, nur beendet sich das programm bei dem eintrag "findViewById"...
ist so ein auslagern überhaupt möglich, wenn ja wie könnte ichs realisieren?
aufrufen der externen funktion:
2funktion_list.addListener_Navi(R.id.button_month);
Funktion:
[code] Context context;
public funktion(Context contextnow) {
context = contextnow;
}
public void addListener_Navi(int now_id) {
Button btn;
final int id_s[] = { R.id.button_year,
R.id.button_month,
R.id.button_week,
R.id.button_day};
final Intent intent_id[] = { new Intent(context, MainActivity_Year.class),
new Intent(context, MainActivity_Month.class),
new Intent(context, MainActivity_Week.class),
new Intent(context, MainActivity_Day.class)};
for (int i = 0; i < id_s.length; i++) {
final int i1 = i;
btn = (Button) findViewById(id_s[i]);
if (now_id == id_s[i]){
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startActivity(intent_id[i1]);
}
});
}else{
btn.setEnabled(false);
}
}
}[/code]
Logcat:
208-21 07:00:39.705: E/AndroidRuntime(526): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
308-21 07:00:39.705: E/AndroidRuntime(526): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
408-21 07:00:39.705: E/AndroidRuntime(526): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
508-21 07:00:39.705: E/AndroidRuntime(526): at android.os.Handler.dispatchMessage(Handler.java:99)
608-21 07:00:39.705: E/AndroidRuntime(526): at android.os.Looper.loop(Looper.java:123)
708-21 07:00:39.705: E/AndroidRuntime(526): at android.app.ActivityThread.main(ActivityThread.java:4203)
808-21 07:00:39.705: E/AndroidRuntime(526): at java.lang.reflect.Method.invokeNative(Native Method)
908-21 07:00:39.705: E/AndroidRuntime(526): at java.lang.reflect.Method.invoke(Method.java:521)
1008-21 07:00:39.705: E/AndroidRuntime(526): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
1108-21 07:00:39.705: E/AndroidRuntime(526): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
1208-21 07:00:39.705: E/AndroidRuntime(526): at dalvik.system.NativeStart.main(Native Method)
1308-21 07:00:39.705: E/AndroidRuntime(526): Caused by: java.lang.NullPointerException
1408-21 07:00:39.705: E/AndroidRuntime(526): at android.app.Activity.findViewById(Activity.java:1610)
1508-21 07:00:39.705: E/AndroidRuntime(526): at ....funktion.addListener_Navi(funktion.java:53)
1608-21 07:00:39.705: E/AndroidRuntime(526): at ....MainActivity_Month.onCreate(MainActivity_Month.java:22)
1708-21 07:00:39.705: E/AndroidRuntime(526): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
1808-21 07:00:39.705: E/AndroidRuntime(526): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
1908-21 07:00:39.705: E/AndroidRuntime(526): ... 11 more
— geändert am 21.08.2012, 09:19:01
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.