0
all!我在Android的世界很新,但我在此之前就尽可能多地搜索了这个问题的答案...以编程方式将微调器添加到LinearLayout中
我在我的布局中有一个水平的LinearLayout,名为“spinner”。最初(即在xml文件中),那里只有一个微调器。我也有一个按钮(id:addPath),它激活了一个方法,我想这个方法(add_path)添加另一个微调器到视图(和另一个命中 - anothr微调等)。 所有额外的spinners是相同的,即,基于相同的字符串数组(path_array)。
这是我的XML看起来像:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/compWelcome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/complicated_welcome" />
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinners"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/textCompStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/complicated_prefix" />
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:prompt="@string/spinner_prompt" />
<TextView
android:id="@+id/textCompEnd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/complicated_postfix" />
</LinearLayout>
<Button
android:id="@+id/addPath"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="add_path"
android:text="@string/add_path_button" />
</LinearLayout>
</ScrollView>
这是我如何激活内部的onCreate微调:
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.path_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
现在,应该如何add_path方法的样子,既创造微调器和实际添加到LinearLayout?
感谢, 嫩
下面是击中调用中,我已经添加了微调创作方法按键后输出的logcat:
02-10 19:56:17.097: D/AndroidRuntime(284): Shutting down VM
02-10 19:56:17.097: W/dalvikvm(284): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
02-10 19:56:17.097: E/AndroidRuntime(284): Uncaught handler: thread main exiting due to uncaught exception
02-10 19:56:17.117: E/AndroidRuntime(284): java.lang.IllegalStateException: Could not execute method of the activity
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.View$1.onClick(View.java:2031)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.View.performClick(View.java:2364)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.View.onTouchEvent(View.java:4179)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.widget.TextView.onTouchEvent(TextView.java:6541)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.View.dispatchTouchEvent(View.java:3709)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
02-10 19:56:17.117: E/AndroidRuntime(284): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
02-10 19:56:17.117: E/AndroidRuntime(284): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
02-10 19:56:17.117: E/AndroidRuntime(284): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.os.Handler.dispatchMessage(Handler.java:99)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.os.Looper.loop(Looper.java:123)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.app.ActivityThread.main(ActivityThread.java:4363)
02-10 19:56:17.117: E/AndroidRuntime(284): at java.lang.reflect.Method.invokeNative(Native Method)
02-10 19:56:17.117: E/AndroidRuntime(284): at java.lang.reflect.Method.invoke(Method.java:521)
02-10 19:56:17.117: E/AndroidRuntime(284): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
02-10 19:56:17.117: E/AndroidRuntime(284): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
02-10 19:56:17.117: E/AndroidRuntime(284): at dalvik.system.NativeStart.main(Native Method)
02-10 19:56:17.117: E/AndroidRuntime(284): Caused by: java.lang.reflect.InvocationTargetException
02-10 19:56:17.117: E/AndroidRuntime(284): at arnon.cousinator.complicated.add_path(complicated.java:48)
02-10 19:56:17.117: E/AndroidRuntime(284): at java.lang.reflect.Method.invokeNative(Native Method)
02-10 19:56:17.117: E/AndroidRuntime(284): at java.lang.reflect.Method.invoke(Method.java:521)
02-10 19:56:17.117: E/AndroidRuntime(284): at android.view.View$1.onClick(View.java:2026)
02-10 19:56:17.117: E/AndroidRuntime(284): ... 23 more
02-10 19:56:17.117: E/AndroidRuntime(284): Caused by: java.lang.NullPointerException
02-10 19:56:17.117: E/AndroidRuntime(284): ... 27 more
02-10 19:56:17.148: I/dalvikvm(284): threadid=7: reacting to signal 3
02-10 19:56:17.148: I/dalvikvm(284): Wrote stack trace to '/data/anr/traces.txt'
02-10 20:01:17.165: I/Process(284): Sending signal. PID: 284 SIG: 9
02-10 20:01:17.638: D/dalvikvm(290): GC freed 680 objects/54464 bytes in 54ms
02-10 20:01:17.808: D/dalvikvm(290): GC freed 40 objects/1472 bytes in 46ms
(我使用Eclipse btw)。
谢谢, Arnon
感谢您的快速和详细的答复。一切都很好,但最后一个addView ...我得到了(很常见)“意外停止”的信息......我做错了什么?我应该将视图添加到线性布局的特定ID(如果是这样 - 如何?)。 – 2012-02-11 00:56:41
什么是logcat错误? – kosa 2012-02-11 00:59:47
我将它添加为答案,因为它相当长... – 2012-02-11 02:14:23