- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我是初学者。我的微调器有问题。我想使用 onItemSelected 方法创建微调器并在 TextView 中显示选定的微调器项目
但是我的程序没有在模拟器中运行。它说“程序已停止”..我在下面的程序中犯了什么错误。请帮助我..谢谢你..
我的 SpinOnItemActivity.java
package spinner.onitemsel;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.view.View.OnClickListener;
public class SpinOnItemActivity extends Activity
{
Spinner sp= (Spinner) findViewById(R.id.spin);;
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.spinner_array , android.R.layout.simple_spinner_item);
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spin_on_item );
sp.performClick();
}
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp.setAdapter(adapter);
String Name = (String) sp.getSelectedItem();
TextView tview1 = (TextView)findViewById(R.id.testtxt );
tview1.setText(Name);
}
}
我的activity_spin_on_item.xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SpinActivity" >
<Spinner
android:id="@+id/spin"
android:layout_width="149dp"
android:layout_height="66dp"
android:layout_alignBottom="@+id/button1"
android:layout_alignParentLeft="true"
android:layout_alignRight="@+id/testtxt"
android:layout_gravity="top" />
<TextView
android:id="@+id/testtxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/testtxt2"
android:layout_centerHorizontal="true"
android:layout_marginBottom="44dp"
android:gravity="bottom"
android:text="Spin Txt" />
</RelativeLayout>
我的 logcat 报告
12-10 09:58:40.988: W/Trace(837): Unexpected value from nativeGetEnabledTags: 0
12-10 09:58:41.168: W/Trace(837): Unexpected value from nativeGetEnabledTags: 0
12-10 09:58:41.198: W/Trace(837): Unexpected value from nativeGetEnabledTags: 0
12-10 09:58:41.878: D/dalvikvm(837): GC_CONCURRENT freed 51K, 6% free 2830K/2996K, paused 12ms+3ms, total 56ms
12-10 09:58:41.878: D/dalvikvm(837): WAIT_FOR_CONCURRENT_GC blocked 25ms
12-10 09:58:41.968: D/AndroidRuntime(837): Shutting down VM
12-10 09:58:41.968: W/dalvikvm(837): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
12-10 09:58:41.988: E/AndroidRuntime(837): FATAL EXCEPTION: main
12-10 09:58:41.988: E/AndroidRuntime(837): java.lang.RuntimeException: Unable to start activity ComponentInfo{spinner.onitemsel/spinner.onitemsel.SpinOnItemActivity}: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.os.Handler.dispatchMessage(Handler.java:99)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.os.Looper.loop(Looper.java:137)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread.main(ActivityThread.java:5039)
12-10 09:58:41.988: E/AndroidRuntime(837): at java.lang.reflect.Method.invokeNative(Native Method)
12-10 09:58:41.988: E/AndroidRuntime(837): at java.lang.reflect.Method.invoke(Method.java:511)
12-10 09:58:41.988: E/AndroidRuntime(837): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-10 09:58:41.988: E/AndroidRuntime(837): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-10 09:58:41.988: E/AndroidRuntime(837): at dalvik.system.NativeStart.main(Native Method)
12-10 09:58:41.988: E/AndroidRuntime(837): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
12-10 09:58:41.988: E/AndroidRuntime(837): at android.view.ViewRootImpl.setView(ViewRootImpl.java:567)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:246)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.widget.PopupWindow.invokePopup(PopupWindow.java:993)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:899)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.widget.ListPopupWindow.show(ListPopupWindow.java:603)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.widget.Spinner$DropdownPopup.show(Spinner.java:981)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.widget.Spinner.performClick(Spinner.java:609)
12-10 09:58:41.988: E/AndroidRuntime(837): at spinner.onitemsel.SpinOnItemActivity.onCreate(SpinOnItemActivity.java:35)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.Activity.performCreate(Activity.java:5104)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
12-10 09:58:41.988: E/AndroidRuntime(837): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
12-10 09:58:41.988: E/AndroidRuntime(837): ... 11 more
12-10 10:03:42.109: I/Process(837): Sending signal. PID: 837 SIG: 9
我编辑的代码:请检查一下..
package spinner.onitemsel;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class SpinOnItemActivity extends Activity
{
ArrayAdapter<CharSequence> adapter;
Spinner sp;
TextView tview1;
int length;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spin_on_item );
sp= (Spinner) findViewById(R.id.spin);
adapter = ArrayAdapter.createFromResource(this, R.array.spinner_array , android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp.setAdapter(adapter);
sp.performClick();
}
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String Name = (String) sp.getSelectedItem();
tview1 = (TextView)findViewById(R.id.testtxt );
tview1.setText(Name);
}
}
最佳答案
实际上你的Spinner sp
是null,所以当代码行sp.performClick();
在onCreate()中执行时
应用程序因 Null Pointer Exception
而崩溃。
因为你在上面的 onCreate()
中定义了 Spinner sp
所以 android 没有从 Layout Xml 中找到 Spinner sp
文件。它应该在 setContentView()
之后,所以 android nut shell 有一个针对特定 Activity 的 Spinner 的引用。
解决方案:
放置这些行,
Spinner sp = (Spinner) findViewById(R.id.spin);;
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.spinner_array , android.R.layout.simple_spinner_item);
在 setContentView(R.layout.activity_spin_on_item ) 之后的 Activity 的
onCreate()
中;
有点像,
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spin_on_item );
Spinner sp= (Spinner) findViewById(R.id.spin);;
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.spinner_array , android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp.setAdapter(adapter);
sp.performClick();
}
更新:2
来自您的 activity_spin_on_item.xml
文件。
查看父标签,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SpinActivity" >
在这个属性中
tools:context=".SpinActivity"
应该是 tools:context=".SpinOnItemActivity"
关于android微调器-onItemSelected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13798404/
我是初学者。我的微调器有问题。我想使用 onItemSelected 方法创建微调器并在 TextView 中显示选定的微调器项目 但是我的程序没有在模拟器中运行。它说“程序已停止”..我在下面的程序
我有一个包含多个布局的取景器。我为出现在每个布局上的微调器设置了一个 onItemSelected 事件。单击按钮后有一个验证阶段,在我执行 viewflipper.setDisplayedChild
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 6 年前。 Improve t
我可以使用来自 API 的数组列表填充微调器。但无法从微调器中选择或填充所选项目并显示给用户。 onItemSelected 方法无法获取所选项目在微调器中的位置。 CustomSpinnerAdap
我有一个图库,它允许用户浏览一个图库,选择一个图像作为他们的选择,然后继续浏览图库而不更改该选择。这是通过使用 onItemSelected 来查看他们正在选择的图像(即单击)是否是已选择的图像(通过
即使我无法从我的测试中复制,我也相当一致地从我的 Android 应用程序的用户那里收到此错误消息。任何帮助是极大的赞赏。这是 logcat: java.lang.NullPointerExcepti
这个问题已经有答案了: method "onItemSelected" doesn't work in array adapter and also in fragment (2 个回答) 已关闭 6
我有两个触发 onItemSelected 事件的微调器。问题是我怎么知道是哪一个触发了这样的事件?到目前为止,我尝试过: public void onItemSelected(AdapterVie
我创建了 SwitchCompat 并添加了 android:onCheckedChanged。一切正常,但 Android Studio 将此属性标记为警告说明。 Unknown attribute
我在我的应用程序中使用与本文相同的菜单...我使用图库 View 来显示我的菜单项。 Text Gallery on Android? 问题是,我为画廊实现了 onItemSelected 监听器,以
我使用微调器中的值来帮助过滤将成为 RecyclerView 数据源的列表。当我使用微调器时,OnItemSelect 方法似乎永远不会被调用 它是一个 Android 应用程序,用 Java 构建,
我有一个微调器,它附加了一个基本的 onItemSelected 监听器。现在我想要的是将多个其他 onItemSelected 监听器添加到此微调器中,并且我希望它们全部执行。如何实现? 最佳答案
我遇到的问题是 onItemSelected 方法。每当我尝试更改 View 值(例如:TextView、EditView)时,它都会引发错误。 我想做的是,当我单击微调器上的某些内容时,它会在文本上
尝试在弹出窗口中设置 ListView 的项目选定监听器时,我遇到了一些问题。这是我的代码: private void openPopUp() { LayoutInflater layoutI
I am opening spiiner with onclick on button but my spinner is not trigger setOnItemSelectedListener
我已经多次检查我的代码并尝试了不同的“解决方案”,显然它们都不起作用。问题是当一个项目被点击时,监听器永远不会被解雇。我发现当单击一个项目时,它会出现在 Logcat 中: Window alread
我正在尝试在应用程序中实现多个微调器,其中数据是在 Volley 调用后填充的。它应该以这样的方式工作;基于第一个微调器值 "id" 的选择,第二个微调器应该从另一个 api 调用中填充它的值,将所选
我是 android 编程的新手,我正在尝试根据选择的值更改正确微调器的背景(我在同一 Activity 中有几个)。 为了说明这个问题,让我们举一个非常简单的例子。想象一下,一个微调器在列表中包含三
对于我的 Android 项目,我准备了一个专门的类来监听 onClick()、onTouch() 和 onItemSelected() 事件(它是 MVC 的 Controller ),屏幕上有几个
是否可以在调用 notifyDataSetChanged 后更新 OnItemSelected 中的引用?例如 ImageView onFront; gallery.setOnItemSelected
我是一名优秀的程序员,十分优秀!