Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Android aplikace přestane pracovat

Zduř,

mám androidí aplikaci a v té si dělám dynamicky ovladací prvek - tlačítko.

K vytvoření tlačítka používám tento kód:

                Button myButton = new Button(getApplicationContext ());
                myButton.setText("Muj text");
                /*
                ViewGroup.LayoutParams params = myButton.getLayoutParams();
                params.width = 40;
                params.height = 80;

                myButton.setLayoutParams(params);
              */
	             setContentView(myButton);

Tento kód projde OK. Ale když odkomentuju část, která by měla zmenšit button (jinak je na celou obrazovku), tak to spadne:

08-19 05:31:34.339: W/dalvikvm(1549): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
08-19 05:31:34.383: E/AndroidRuntime(1549): FATAL EXCEPTION: main
08-19 05:31:34.383: E/AndroidRuntime(1549): java.lang.NullPointerException
08-19 05:31:34.383: E/AndroidRuntime(1549): at com.example.test.MainActivity$1.onClick(MainActivi ty.java:53)
08-19 05:31:34.383: E/AndroidRuntime(1549): at android.view.View.performClick(View.java:4240)
08-19 05:31:34.383: E/AndroidRuntime(1549): at android.view.View$PerformClick.run(View.java:17721 )
08-19 05:31:34.383: E/AndroidRuntime(1549): at android.os.Handler.handleCallback(Handler.java:730 )
08-19 05:31:34.383: E/AndroidRuntime(1549): at android.os.Handler.dispatchMessage(Handler.java:92 )
08-19 05:31:34.383: E/AndroidRuntime(1549): at android.os.Looper.loop(Looper.java:137)
08-19 05:31:34.383: E/AndroidRuntime(1549): at android.app.ActivityThread.main(ActivityThread.jav a:5103)
08-19 05:31:34.383: E/AndroidRuntime(1549): at java.lang.reflect.Method.invokeNative(Native Method)
08-19 05:31:34.383: E/AndroidRuntime(1549): at java.lang.reflect.Method.invoke(Method.java:525)
08-19 05:31:34.383: E/AndroidRuntime(1549): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:737)
08-19 05:31:34.383: E/AndroidRuntime(1549): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:553)
08-19 05:31:34.383: E/AndroidRuntime(1549): at dalvik.system.NativeStart.main(Native Method)

Předmět Autor Datum
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(40, 80); myButton.setLayoutParams(params)…
Wikan 19.08.2013 11:40
Wikan
No... teď už to nepadá, ale vytvořený buttonek je stále přes celou obrazovku. :)
Flash_Gordon 19.08.2013 11:44
Flash_Gordon
Měň to až po "setContentView()".
Wikan 19.08.2013 11:46
Wikan
Button myButton = new Button(getApplicationContext ()); myButton.setText("Jar"); setContentView(myBu…
Flash_Gordon 19.08.2013 11:51
Flash_Gordon
Tak zkusíme znovu na začátek: setContentView(myButton); ViewGroup.LayoutParams params = myButton.ge…
Wikan 19.08.2013 11:57
Wikan
Paráda :-D Funguje. Ale nevím, na co jsem přetím nedával pozor....
Flash_Gordon 19.08.2013 12:03
Flash_Gordon
Můžu se ještě zeptat, co je špatně na tomto kódu? Chci tam mít dvě tlačítka. Ale vytvářejí se pravd…
Flash_Gordon 19.08.2013 12:35
Flash_Gordon
http://stackoverflow.com/questions/10764264/androi d-align-two-buttons-on-same-line
Wikan 19.08.2013 12:42
Wikan
Supr. Běžím si koupit nějakou knihu o vývoji pro android.... poslední
Flash_Gordon 19.08.2013 13:01
Flash_Gordon

Můžu se ještě zeptat, co je špatně na tomto kódu?

Chci tam mít dvě tlačítka. Ale vytvářejí se pravděpodobně přes sebe.

	Button myButton = new Button(getApplicationContext ());
                myButton.setText("Button1 je best");
                Button myButton2 = new Button(getApplicationContext ());
                myButton2.setText("Button2 je betr");
                
                
                setContentView(myButton);
                setContentView(myButton2);
                
                
                //ViewGroup.LayoutParams params = myButton.getLayoutParams();
                RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
               // params.width = 40;
               // params.height = 80;
                params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
                myButton.setLayoutParams(params);
                myButton2.setLayoutParams(params);

Zpět do poradny Odpovědět na původní otázku Nahoru