2013-10-28 2 views
0

Я пытаюсь создать динамическую кнопку в другом классе из этого класса Penicillins.class, но я получаю эту ошибкудинамической кнопки в другом классе

частной окончательной активности performLaunchActivity (ActivityRecord г) {

 // System.out.println("##### [" + System.currentTimeMillis() + "] ActivityThread.performLaunchActivity(" + r + ")"); 

     ActivityInfo aInfo = r.activityInfo; 
     if (r.packageInfo == null) { 
      r.packageInfo = getPackageInfo(aInfo.applicationInfo, 
        Context.CONTEXT_INCLUDE_CODE); 
     } 

     ComponentName component = r.intent.getComponent(); 
     if (component == null) { 
      component = r.intent.resolveActivity(
       mInitialApplication.getPackageManager()); 
      r.intent.setComponent(component); 
     } 

     if (r.activityInfo.targetActivity != null) { 
      component = new ComponentName(r.activityInfo.packageName, 
        r.activityInfo.targetActivity); 
     } 

     Activity activity = null; 
     try { 
      java.lang.ClassLoader cl = r.packageInfo.getClassLoader(); 
      activity = mInstrumentation.newActivity(
        cl, component.getClassName(), r.intent); 
      r.intent.setExtrasClassLoader(cl); 
      if (r.state != null) { 
      r.state.setClassLoader(cl); 

это является Java, который имеет кнопку, которая создает новую кнопку:

package org.iimed.www; 

    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.Button; 
    import android.widget.ImageButton; 
    import android.widget.LinearLayout; 

    import org.iimed.www.Sundayopen; 
    import android.widget.RelativeLayout; 
    import android.widget.RelativeLayout.LayoutParams; 

    import android.app.Activity; 
    import android.content.Context; 
    import android.content.Intent; 

    import android.graphics.drawable.Drawable; 

    public class Penicillins extends Activity implements OnClickListener{ 

     ImageButton back,addmed; 
     Context adaba; 
     Drawable mmimed; 
     Button button; 
     RelativeLayout rl; 

     public void onCreate(Bundle SavedInstanceState){ 
     super.onCreate(SavedInstanceState); 
     setContentView(R.layout.penicillin); 
      rl = (RelativeLayout)findViewById(R.id.sundayopen); 
     back = (ImageButton) findViewById(R.id.back); 
     addmed = (ImageButton) findViewById(R.id.addmed); 
     back.setOnClickListener(this); 
     addmed.setOnClickListener(this); 
     } 


     ImageButton addmed = (ImageButton) findViewById(R.id.addmed); 
     public void onClick(View v) { 



     LayoutParams b = new LayoutParams(
         LinearLayout.LayoutParams.MATCH_PARENT, 
        LinearLayout.LayoutParams.WRAP_CONTENT); 

      Button button = new Button(this); 
      button.setText("hello"); 
      button.setLayoutParams(b); 
      rl.addView(button); 

     }} 

ошибки журнала кошки

01-08 22:10:52.505: E/AndroidRuntime(14353): FATAL EXCEPTION: main 
01-08 22:10:52.505: E/AndroidRuntime(14353): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException 
01-08 22:10:52.505: E/AndroidRuntime(14353): at android.app.LoadedApk.makeApplication(LoadedApk.java:516) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4568) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at android.app.ActivityThread.access$1400(ActivityThread.java:152) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at android.os.Looper.loop(Looper.java:137) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at android.app.ActivityThread.main(ActivityThread.java:5328) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at java.lang.reflect.Method.invokeNative(Native Method) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at java.lang.reflect.Method.invoke(Method.java:511) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at dalvik.system.NativeStart.main(Native Method) 
01-08 22:10:52.505: E/AndroidRuntime(14353): Caused by: java.lang.NullPointerException 
01-08 22:10:52.505: E/AndroidRuntime(14353): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:387) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at android.app.LoadedApk.getClassLoader(LoadedApk.java:325) 
01-08 22:10:52.505: E/AndroidRuntime(14353): at android.app.LoadedApk.makeApplication(LoadedApk.java:504) 
01-08 22:10:52.505: E/AndroidRuntime(14353): ... 11 more 

также стек

ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2173  
ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2297 
ActivityThread.access$700(ActivityThread, ActivityThread$ActivityClientRecord, Intent) line: 152  
ActivityThread$H.handleMessage(Message) line: 1282 
ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
Looper.loop() line: 137 
ActivityThread.main(String[]) line: 5328  
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
Method.invoke(Object, Object...) line: 511 
ZygoteInit$MethodAndArgsCaller.run() line: 1102 
ZygoteInit.main(String[]) line: 869 
NativeStart.main(String[]) line: not available [native method] 

Я думаю, что проблема может быть мои каталоги все поддатый от разреза оклейки некоторые вещи вокруг, как менеджер SDK теперь рассказывает мне, что я не все правильные инструменты платформы установили, загрузили их сейчас.

+0

Обновление, потому что я случайно оставил строку ImageButton addmed = (ImageButton) findViewById (R.id.addmed); при копировании – ToeKnee

+0

Какая ошибка? – nedaRM

+0

01-08 22: 11: 12,644: Е/SpannableStringBuilder (14579): SPAN_EXCLUSIVE_EXCLUSIVE пролеты не может иметь нулевую длину – ToeKnee

ответ

0

EDIT: Причина, по которой он не работает, заключается в том, что вы должны объявить RelativeLayout как глобальную переменную (это базовое программирование, которое вы должны знать об этом), а затем дать ему значение в вашей onCreate() после того, как вы установилиContentView. Примерно так:

public class Penicillins extends Activity implements OnClickListener{ 

     ImageButton back,addmed; 
     Context adaba; 
     Drawable mmimed; 
     Button button; 
     RelativeLayout rl; 

     public void onCreate(Bundle SavedInstanceState){ 
     super.onCreate(SavedInstanceState); 
     setContentView(R.layout.penicillin); 
     rl = (RelativeLayout)findViewById(R.id.sundayopen); 
     back = (ImageButton) findViewById(R.id.back); 
     addmed = (ImageButton) findViewById(R.id.addmed); 
     back.setOnClickListener(this); 
     addmed.setOnClickListener(this); 
     } 
+0

Righto, но затем 'гх' находится вне границ для Кнопка = новая кнопка (это); button.setText ("hello"); button.setLayoutParams (b); rl.addView (кнопка); Любое место, в частности, вы можете рекомендовать, я ставлю его? – ToeKnee

+0

@ToeKnee проверить мое редактирование. Сделайте то же самое для rl, как и для всего остального. – nedaRM

+0

Это не сработало 'setContentView (R.layout.penicillin); rl = (RelativeLayout) findViewById (R.id.sundayopen); RelativeLayout rl; ' – ToeKnee

Смежные вопросы