求助,android spinner点击后程序崩溃,网上查了很久,没有找到解决方法,谢谢!

qq_33802956 2018-05-13 04:25:38
xml: 所有的spinner都被设置为gone, 接收多少组数据,就把多少个spinner设为visible
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="none"
>
<LinearLayout
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Spinner
android:id="@+id/spinner_leader1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="64dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader9"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader11"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader12"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader13"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
<Spinner
android:id="@+id/spinner_leader14"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="49dp"
android:visibility="gone"/>
</LinearLayout>
</ScrollView>
...全文
1575 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jing丶無雙 2018-05-14
  • 打赏
  • 举报
回复
这是报错的主要原因java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 你还需要注意报错关键点Caused by:后面的描述,它会告知是你的代码第几行报错的,这样你在代码相应行断点调试就能很有效的解决报错了
qq_33802956 2018-05-14
  • 打赏
  • 举报
回复
已解决,原来是list_stu[][]中的值可能为空,谢谢!
qq_33802956 2018-05-13
  • 打赏
  • 举报
回复
服务器数据库的数据被正确返回,也被正确解析; 完整的日志: D/OpenGLRenderer: endAllActiveAnimators on 0x97747d80 (DropDownListView) with handle 0x98654d70 D/stu: 李(2013) D/stu: 苗(2014) D/stu: 郭(2014) D/stu: 连(2014) D/stu: 张(2015) D/stu: 汪(2015) D/stu: 杨(2015) D/stu: 周(2015) D/stu: 宫(2015) D/stu: 刘(2015) D/stu: 梁(2015) D/stu: 文(2014) D/i: 1 D/stu: 李(2014) D/stu: 王(2014) D/stu: 黄(2014) D/stu: 欧(2014) D/stu: 徐(2015) D/stu: 王(2015) D/stu: 袁(2015) D/stu: 訾(2015) D/stu: 韩(2015) D/stu: 刘(2015) D/stu: 姚(2014) D/i: 2 D/stu: 刘(2014) D/stu: 肖(2014) D/stu: 林(2014) D/stu: 王(2014) D/stu: 柏(2015) D/stu: 吴(2015) D/stu: 刘(2015) D/stu: 冯(2015) D/stu: 韩(2015) D/stu: 吴(2015) D/stu: 贾(2014) D/i: 3 D/stu: 石(2014) D/stu: 余(2014) D/stu: 陈(2014) D/stu: 员(2014) D/stu: 洪(2015) D/stu: 徐(2015) D/stu: 刘(2015) D/stu: 胡(2015) D/stu: 何(2015) D/stu: 薛(2015) D/stu: 李(2014) D/i: 4 D/stu: 胡(2014) D/stu: 张(2014) D/stu: 黄(2014) D/stu: 王(2015) D/stu: 侯(2015) D/stu: 张(2015) D/stu: 宋(2015) D/stu: 马(2015) D/stu: 黄(2015) D/stu: 张(2015) D/stu: 纪(2014) D/i: 5 D/stu: 庞(2014) D/stu: 吴(2014) D/stu: 别(2014) D/stu: 魏(2015) D/stu: 李(2015) D/stu: 颉(2015) D/stu: 孙(2015) D/stu: 陈(2015) D/stu: 张(2015) D/stu: 陈(2015) D/stu: 孙(2014) D/i: 6 D/stu: 王(2014) D/stu: 张(2014) D/stu: 陈(2014) D/stu: 方(2015) D/stu: 李(2015) D/stu: 季(2015) D/stu: 王(2015) D/stu: 葛(2015) D/stu: 张(2015) D/stu: 张(2015) D/stu: 党(2014) D/i: 7 D/stu: 张(2014) D/stu: 琚(2014) D/stu: 翟(2014) D/stu: 蒋(2015) D/stu: 韩(2015) D/stu: 姜(2015) D/stu: 徐(2015) D/stu: 周(2015) D/stu: 邓(2015) D/stu: 张(2015) D/stu: 冯(2014) D/i: 8 D/stu: 姜(2014) D/stu: 陈(2014) D/stu: 冯(2014) D/stu: 宁(2015) D/stu: 刘(2015) D/stu: 李(2015) D/stu: 曾(2015) D/stu: 曹(2015) D/stu: 谷(2015) D/stu: 赵(2015) D/stu: 金(2014) D/i: 9 D/stu: 雷(2014) D/stu: 樊(2014) D/stu: 黄(2014) D/stu: 王(2015) D/stu: 龙(2015) D/stu: 任(2015) D/stu: 赵(2015) D/stu: 范(2015) D/stu: 李(2015) D/stu: 闫(2015) D/stu: 钟(2015) D/i: 10 D/init_i: 0 D/init_i: 1 D/init_i: 2 D/init_i: 3 D/init_i: 4 D/init_i: 5 D/init_i: 6 D/init_i: 7 D/init_i: 8 D/init_i: 9 D/init_i: 10 D/init_i: 11 D/init_i: 12 D/init_i: 13 D/spinner_leader1: 李(2013) D/spinner_leader2: 李(2014) D/spinner_leader3: 刘(2014) D/spinner_leader4: 石(2014) D/spinner_leader5: 胡(2014) D/spinner_leader6: 庞(2014) D/spinner_leader7: 王(2014) D/spinner_leader8: 张(2014) D/spinner_leader9: 姜(2014) D/spinner_leader10: 雷(2014) D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main Process: com.xp.administrator.classmanager, PID: 6526 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:409) at android.widget.ArrayAdapter.getDropDownView(ArrayAdapter.java:457) at android.widget.Spinner$DropDownAdapter.getDropDownView(Spinner.java:975) at android.widget.Spinner$DropDownAdapter.getView(Spinner.java:971) at android.widget.Spinner.measureContentWidth(Spinner.java:845) at android.widget.Spinner$DropdownPopup.computeContentWidth(Spinner.java:1206) at android.widget.Spinner$DropdownPopup.show(Spinner.java:1232) at android.widget.Spinner.performClick(Spinner.java:770) at android.support.v7.widget.AppCompatSpinner.performClick(AppCompatSpinner.java:438) at android.view.View$PerformClick.run(View.java:22260) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Application terminated.
qq_33802956 2018-05-13
  • 打赏
  • 举报
回复
Activity主要相关代码: public class MainActivity_Teacher extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, AdapterView.OnItemSelectedListener { private static String address = "http://localhost:80/receiveMessage.php"; private Spinner[] spinner_leaderX; private String[][] list_stu = new String[14][25]; private String[] list_stu_be_selected = new String[14]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main__teacher); spinner_leaderX = new Spinner[]{(Spinner)findViewById(R.id.spinner_leader1), (Spinner)findViewById(R.id.spinner_leader2), (Spinner)findViewById(R.id.spinner_leader3), (Spinner)findViewById(R.id.spinner_leader4), (Spinner)findViewById(R.id.spinner_leader5), (Spinner)findViewById(R.id.spinner_leader6), (Spinner)findViewById(R.id.spinner_leader7), (Spinner)findViewById(R.id.spinner_leader8), (Spinner)findViewById(R.id.spinner_leader9), (Spinner)findViewById(R.id.spinner_leader10), (Spinner)findViewById(R.id.spinner_leader11), (Spinner)findViewById(R.id.spinner_leader12), (Spinner)findViewById(R.id.spinner_leader13), (Spinner)findViewById(R.id.spinner_leader14) }; } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { switch (parent.getId()){ case R.id.spinner_leader1: list_stu_be_selected[0] = list_stu[0][position]; Log.d("spinner_leader1", list_stu[0][position]); break; case R.id.spinner_leader2: list_stu_be_selected[1] = list_stu[1][position]; Log.d("spinner_leader2", list_stu[1][position]); break; case R.id.spinner_leader3: list_stu_be_selected[2] = list_stu[2][position]; Log.d("spinner_leader3", list_stu[2][position]); break; case R.id.spinner_leader4: list_stu_be_selected[3] = list_stu[3][position]; Log.d("spinner_leader4", list_stu[3][position]); break; case R.id.spinner_leader5: list_stu_be_selected[4] = list_stu[4][position]; Log.d("spinner_leader5", list_stu[4][position]); break; case R.id.spinner_leader6: list_stu_be_selected[5] = list_stu[5][position]; Log.d("spinner_leader6", list_stu[5][position]); break; case R.id.spinner_leader7: list_stu_be_selected[6] = list_stu[6][position]; Log.d("spinner_leader7", list_stu[6][position]); break; case R.id.spinner_leader8: list_stu_be_selected[7] = list_stu[7][position]; Log.d("spinner_leader8", list_stu[7][position]); break; case R.id.spinner_leader9: list_stu_be_selected[8] = list_stu[8][position]; Log.d("spinner_leader9", list_stu[8][position]); break; case R.id.spinner_leader10: list_stu_be_selected[9] = list_stu[9][position]; Log.d("spinner_leader10", list_stu[9][position]); break; case R.id.spinner_leader11: list_stu_be_selected[10] = list_stu[10][position]; Log.d("spinner_leader11", list_stu[10][position]); break; case R.id.spinner_leader12: list_stu_be_selected[11] = list_stu[11][position]; Log.d("spinner_leader12", list_stu[11][position]); break; case R.id.spinner_leader13: list_stu_be_selected[12] = list_stu[12][position]; Log.d("spinner_leader13", list_stu[12][position]); break; case R.id.spinner_leader14: list_stu_be_selected[13] = list_stu[13][position]; Log.d("spinner_leader14", list_stu[13][position]); break; default: break; } } //没有数据时执行 @Override public void onNothingSelected(AdapterView<?> parent) { } private void initLeaderListener(){ for(int i = 0; i < 14; i++){ spinner_leaderX[i].setOnItemSelectedListener(this); Log.d("init_i", String.valueOf(i)); } } private void init_select_leader(){ new Thread(new Runnable() { @Override public void run() { try{ JSONObject object = new JSONObject(); object.put("action", "getSelectLeaderData"); HttpUtil.sendOkHttpRequest(address, object.toString(), new okhttp3.Callback(){ @Override public void onResponse(Call call, Response response) throws IOException { try{ json_mainGroupData = response.body().string(); runOnUiThread(new Runnable() { @Override public void run() { /* 调试用 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity_Teacher.this, json_mainGroupData, Toast.LENGTH_SHORT).show(); } });*/ try{ JSONObject jsonObject_mainGroupData = new JSONObject(json_mainGroupData); String action = jsonObject_mainGroupData.getString("action"); if(action.equals("getSelectLeaderData")){ JSONObject jsonObject_mainData = jsonObject_mainGroupData.getJSONObject("selectLeaderData"); Iterator iterator = jsonObject_mainData.keys(); String key; JSONObject value; int i = 0; while(iterator.hasNext()){ spinner_leaderX[i].setVisibility(View.VISIBLE); key = (String) iterator.next(); value = jsonObject_mainData.getJSONObject(key); Iterator iterator_stu = value.keys(); String key_stuid; String value_name; int j = 0; //list_stu[i][0] = "请选择第"+ (i+1) + "组组长,如不需更换,则不用选择"; while(iterator_stu.hasNext()){ key_stuid = (String) iterator_stu.next(); value_name = value.getString(key_stuid); list_stu[i][j] = value_name + "(" + key_stuid + ")"; Log.d("stu", list_stu[i][j]); j++; } ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity_Teacher.this,android.R.layout.simple_spinner_item, list_stu[i]); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner_leaderX[i].setAdapter(adapter); i++; Log.d("i", String.valueOf(i)); } initLeaderListener(); } }catch (JSONException e){ e.printStackTrace(); } } }); }catch(Exception e){ e.printStackTrace(); } } @Override public void onFailure(Call call, IOException e){ e.printStackTrace(); } }); }catch (Exception e){ e.printStackTrace(); } } }).start(); } @Override public void onBackPressed() { DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); if (drawer.isDrawerOpen(GravityCompat.START)) { drawer.closeDrawer(GravityCompat.START); } else { super.onBackPressed(); } } }

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧