teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

編集

2016/03/31 10:51

投稿

masaakitsuyoshi
masaakitsuyoshi

スコア102

title CHANGED
File without changes
body CHANGED
@@ -1,9 +1,25 @@
1
1
  navigation drawer activityを使って、navigation drawerをカスタマイズしています。
2
2
 
3
- それぞれのnavigationがタップされた時に、処理を書きたいのですが、下記のような感じで合っていますか?
3
+ それぞれのnavigationがタップされた時に、処理を書きたいのですが、エラーが出しまいます
4
4
 
5
+ MainからMember のintentに移ろうと、
6
+ navigation drawerをタップするとエラーになります。
7
+
8
+ **Main-Member-Sub **
9
+ と遷移したいです。
10
+ main(navigation drawerで)
11
+ Member(リストビューをタップ)
12
+
13
+
14
+ 試しに
15
+ MainからSubに移すとエラーなく行けました。
16
+ Main-Memberに設定するとエラーが出ます。
17
+
18
+ 何が原因でしょうか?
19
+
20
+ main
5
21
  ```ここに言語を入力
6
- @SuppressWarnings("StatementWithEmptyBody")
22
+ @SuppressWarnings("StatementWithEmptyBody")
7
23
  @Override
8
24
  public boolean onNavigationItemSelected(MenuItem item) {
9
25
  // Handle navigation view item clicks here.
@@ -12,14 +28,13 @@
12
28
  if (id == R.id.nav_corporate) {
13
29
  // Handle the camera action
14
30
  } else if (id == R.id.nav_member) {
15
-
16
- //こんな感じ??????
31
+ //こんな感じ????
17
- MenuItem nav_member = (MenuItem) findViewById(R.id.nav_member);
18
- nav_member.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener){
19
-
20
- };
21
-
22
32
 
33
+ Intent member_intent = new Intent();
34
+ member_intent.setClassName("com.example.navigationdrawer", "com.example.navigationdrawer.Member");
35
+ startActivity(member_intent);
36
+
37
+
23
38
  } else if (id == R.id.nav_history) {
24
39
 
25
40
  } else if (id == R.id.nav_business) {
@@ -32,47 +47,102 @@
32
47
  drawer.closeDrawer(GravityCompat.START);
33
48
  return true;
34
49
  }
35
- }
36
50
  ```
37
51
 
52
+ Member.java
38
53
  ```ここに言語を入力
39
- MenuItem nav_member = (MenuItem) findViewById(R.id.nav_member);
54
+ public class Member extends AppCompatActivity {
40
- nav_member.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener)
41
- ```
42
55
 
43
- ボタンのクリックリスナーと同じようにこんな感じでいいんでしょうか?
44
56
 
57
+ private ListView listView;
58
+ ArrayList<MemberProfile> memberProfilesList;
45
59
 
46
- ちなみに、カアスタマイズしたテキストはこんな感じです。
47
- ```ここに言語を入力
60
+ @Override
48
- <?xml version="1.0" encoding="utf-8"?>
61
+ protected void onCreate(Bundle savedInstanceState) {
62
+ super.onCreate(savedInstanceState);
49
- <menu xmlns:android="http://schemas.android.com/apk/res/android">
63
+ setContentView(R.layout.content_main);
50
64
 
51
- <group android:checkableBehavior="single">
52
- <item
53
- android:id="@+id/nav_corporate"
54
- android:title="会社概要" />
55
- <item
56
- android:id="@+id/nav_member"
57
- android:title="メンバー" />
58
- <item
59
- android:id="@+id/nav_history"
60
- android:title="沿革" />
61
- <item
62
- android:id="@+id/nav_business"
63
- android:title="事業紹介" />
64
- </group>
65
65
 
66
- <item android:title="その他">
66
+ listView = (ListView)findViewById(R.id.listView1);
67
67
 
68
- <menu>
69
- <item
70
- android:id="@+id/nav_contact"
68
+ //アレイリストのインスタンスを作成
71
- android:title="連絡先" />
69
+ memberProfilesList = new ArrayList<>();
70
+ memberProfilesList.add(new MemberProfile("吉田拓郎","農家",R.drawable.human,"農家の吉田拓郎です。最近の趣味はアイスホッケー。好きな食べ物はドリアとピザです。"));
71
+ memberProfilesList.add(new MemberProfile("静岡じゅん","広報", R.drawable.human1,"広報担当のじゅんです。プリンが大好物!"));
72
+ memberProfilesList.add(new MemberProfile("ケイティ・スチュワート","広報", R.drawable.human2,"Hi I'm Katie. My job is PR and SNS manager."));
73
+
72
74
 
73
- </menu>
75
+ //配列を保持するアダプターのインスタンスと引数を設定
74
- </item>
76
+ //ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, profiles);
75
77
 
76
- </menu>
78
+ CustomAdapter customAdapter = new CustomAdapter(this, memberProfilesList);
77
79
 
80
+
81
+ //アダプターをリストビューのインスタンスに設定
82
+ listView.setAdapter(customAdapter);
83
+
84
+
85
+ listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
86
+ @Override
87
+ public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
88
+
89
+ MemberProfile memberProfile = (MemberProfile)listView.getItemAtPosition(position);
90
+
91
+ Intent sub = new Intent();
92
+ sub.putExtra("list_names", memberProfile.getName());
93
+ sub.putExtra("list_jobs",memberProfile.getJob());
94
+ sub.putExtra("list_images",memberProfile.getImage());
95
+ sub.putExtra("list_comments",memberProfile.getComment());
96
+
97
+
98
+ sub.setClassName("com.example.navigationdrawer", "com.example.navigationdrawer.SubActivity");
99
+ startActivity(sub);
100
+
101
+ }
102
+ });
103
+
104
+
105
+
106
+ }
107
+
108
+
109
+
110
+
111
+ }
112
+ ```
113
+
114
+
115
+ エラー
116
+
117
+
118
+ ```ここに言語を入力
119
+ FATAL EXCEPTION: main
120
+ Process: com.example.navigationdrawer, PID: 19942
121
+ java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.navigationdrawer/com.example.navigationdrawer.Member}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
122
+ at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2320)
123
+ at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2380)
124
+ at android.app.ActivityThread.access$800(ActivityThread.java:151)
125
+ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1285)
126
+ at android.os.Handler.dispatchMessage(Handler.java:102)
127
+ at android.os.Looper.loop(Looper.java:135)
128
+ at android.app.ActivityThread.main(ActivityThread.java:5289)
129
+ at java.lang.reflect.Method.invoke(Native Method)
130
+ at java.lang.reflect.Method.invoke(Method.java:372)
131
+ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
132
+ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
133
+ Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
134
+ at com.example.navigationdrawer.Member.onCreate(Member.java:54)
135
+ at android.app.Activity.performCreate(Activity.java:6018)
136
+ at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
137
+ at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2273)
138
+ at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2380) 
139
+ at android.app.ActivityThread.access$800(ActivityThread.java:151) 
140
+ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1285) 
141
+ at android.os.Handler.dispatchMessage(Handler.java:102) 
142
+ at android.os.Looper.loop(Looper.java:135) 
143
+ at android.app.ActivityThread.main(ActivityThread.java:5289) 
144
+ at java.lang.reflect.Method.invoke(Native Method) 
145
+ at java.lang.reflect.Method.invoke(Method.java:372) 
146
+ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
147
+ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
78
148
  ```