質問編集履歴
1
編集
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
|
-
|
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
|
-
|
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
|
-
|
61
|
+
protected void onCreate(Bundle savedInstanceState) {
|
62
|
+
super.onCreate(savedInstanceState);
|
49
|
-
|
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
|
-
|
66
|
+
listView = (ListView)findViewById(R.id.listView1);
|
67
67
|
|
68
|
-
<menu>
|
69
|
-
<item
|
70
|
-
|
68
|
+
//アレイリストのインスタンスを作成
|
71
|
-
|
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
|
-
|
75
|
+
//配列を保持するアダプターのインスタンスと引数を設定
|
74
|
-
|
76
|
+
//ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, profiles);
|
75
77
|
|
76
|
-
|
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
|
```
|