質問編集履歴
7
一部のみのコード掲載よりコード全体の掲載・現在試行錯誤中のコード
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,36 +5,124 @@
|
|
5
5
|
ビルド後、リストビュー項目を長押しした際、一瞬のみ、項目がリストから消えますが、その後すぐにまた復活して、項目を短く押した際にインテントで遷移する次の項目の詳細画面に処理が進み、長押しした項目自体も削除されておりません。
|
6
6
|
|
7
7
|
以下が私のコードです。
|
8
|
-
|
8
|
+
|
9
|
-
.
|
10
|
-
.
|
11
|
-
.
|
12
9
|
|
10
|
+
|
11
|
+
import android.app.Activity;
|
12
|
+
import android.content.Intent;
|
13
|
+
import android.os.Bundle;
|
14
|
+
import android.view.View;
|
15
|
+
import android.widget.Button;
|
16
|
+
|
17
|
+
|
18
|
+
import android.widget.ArrayAdapter;
|
19
|
+
import android.widget.AdapterView;
|
20
|
+
import android.widget.ListView;
|
21
|
+
import android.database.Cursor;
|
22
|
+
import android.database.sqlite.SQLiteDatabase;
|
23
|
+
|
24
|
+
import android.widget.TextView;
|
25
|
+
import android.widget.Toast;
|
26
|
+
|
27
|
+
import java.util.ArrayList;
|
28
|
+
import java.util.HashMap;
|
29
|
+
import java.util.Map;
|
30
|
+
|
31
|
+
|
32
|
+
public class complist extends Activity {
|
33
|
+
|
34
|
+
private /*丙プロジェクトとアプリ名*/SimpleDatabaseHelper_bo1 helper = null;
|
35
|
+
|
36
|
+
|
37
|
+
@Override
|
38
|
+
protected void onCreate(Bundle savedInstanceState) {
|
39
|
+
super.onCreate(savedInstanceState);
|
40
|
+
setContentView(R.layout.complist_layout);
|
41
|
+
|
42
|
+
|
43
|
+
Integer pcontentid = 0;
|
44
|
+
String ptime = null;
|
45
|
+
String pname = null;
|
46
|
+
|
47
|
+
String stringid = null;
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
if (helper == null) {
|
52
|
+
helper = new SimpleDatabaseHelper_bo1(complist.this);
|
53
|
+
}
|
54
|
+
|
55
|
+
|
56
|
+
final ArrayList<HashMap<String, String>> datalist1 = new ArrayList();
|
57
|
+
// ArrayList datalist1 = new ArrayList();
|
58
|
+
|
59
|
+
SQLiteDatabase db1 = helper.getReadableDatabase();
|
60
|
+
|
61
|
+
try {
|
62
|
+
|
63
|
+
Cursor c3 = db1.rawQuery("SELECT * FROM "/*丙データベーステーブル名*/", null);
|
64
|
+
boolean next = c3.moveToFirst();
|
65
|
+
while (next) {
|
66
|
+
HashMap<String, String> data = new HashMap<>();
|
67
|
+
|
68
|
+
pcontentid = c3.getInt(0);
|
69
|
+
ptime = c3.getString(1);
|
70
|
+
pname = c3.getString(2);
|
71
|
+
|
72
|
+
stringid = String.valueOf(pcontentid);
|
73
|
+
|
74
|
+
data.put("ID", stringid);
|
75
|
+
data.put("Time", ptime);
|
76
|
+
data.put("Subject",pname);
|
77
|
+
|
78
|
+
datalist1.add(data);
|
79
|
+
next = c3.moveToNext();
|
80
|
+
|
81
|
+
}
|
82
|
+
c3.close();
|
83
|
+
|
84
|
+
}catch (Exception e){
|
85
|
+
|
86
|
+
TextView error = (TextView)findViewById(R.id.textview_error);
|
87
|
+
error.setText(getString(R.string.not_yet));
|
88
|
+
|
89
|
+
} finally {
|
90
|
+
db1.close();
|
91
|
+
}
|
92
|
+
|
93
|
+
|
94
|
+
|
13
|
-
|
95
|
+
final ArrayAdapter adapter = new ArrayAdapter(this,
|
14
96
|
android.R.layout.simple_list_item_1,
|
15
97
|
datalist1);
|
16
98
|
|
17
99
|
|
18
|
-
|
19
|
-
|
20
|
-
|
100
|
+
final ListView listView1 = (ListView) findViewById(R.id.listview1);
|
21
101
|
listView1.setAdapter(adapter);
|
22
102
|
|
23
103
|
listView1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
|
24
104
|
@Override
|
25
105
|
public boolean onItemLongClick(AdapterView<?
|
26
106
|
>parent, View view, int position, long id){
|
107
|
+
/*
|
108
|
+
HashMap<String, String> map1 = (HashMap<String, String>)listView1.parentAdapter.getItemAtPosition(position);
|
109
|
+
String value1 = map1.get("ID");
|
110
|
+
String value2 = map1.get("Time");
|
111
|
+
String value3 = map1.get("Subject");
|
27
|
-
|
112
|
+
try {
|
28
|
-
String item = (String)
|
113
|
+
String item = (String)map1.get(position);
|
29
114
|
}catch (Exception e){
|
30
115
|
|
31
116
|
}
|
117
|
+
*/
|
118
|
+
|
32
|
-
|
119
|
+
String item1 = (String)parent.getItemAtPosition(position) ;
|
120
|
+
datalist1.remove(item1);
|
121
|
+
|
33
122
|
adapter.notifyDataSetChanged();
|
34
123
|
return false;
|
35
|
-
|
36
|
-
|
37
|
-
|
124
|
+
|
125
|
+
|
38
126
|
}
|
39
127
|
|
40
128
|
});
|
@@ -46,15 +134,20 @@
|
|
46
134
|
|
47
135
|
|
48
136
|
String get_id2 = String.valueOf(id + 1);
|
49
|
-
Intent intent4 = new Intent(this,
|
137
|
+
Intent intent4 = new Intent(complist.this,
|
50
|
-
|
138
|
+
user.win.hope.a_box_to_complain.compdisp.class);
|
51
139
|
intent4.putExtra("did2",get_id2);
|
52
140
|
startActivity(intent4);
|
53
141
|
|
54
142
|
}
|
55
143
|
});
|
56
144
|
|
145
|
+
}
|
57
146
|
|
147
|
+
}
|
148
|
+
|
149
|
+
|
150
|
+
|
58
151
|
項目を削除する前にダイアログも表示させたいのですが、項目自体が削除されないので、次に進めずにとても困っております。
|
59
152
|
|
60
153
|
もし、解決方法がお解りでいらっしゃいましたら、ご教授の程、宜しくお願い申し上げます。
|
6
title
CHANGED
File without changes
|
body
CHANGED
@@ -93,4 +93,6 @@
|
|
93
93
|
|
94
94
|
HashMapを使わないで試してみましたが、うまくいきませんでした。
|
95
95
|
|
96
|
-
itemにデータが入って
|
96
|
+
itemにデータが入ってきてないのは、間違ったキャストをしているからですよね…?
|
97
|
+
|
98
|
+
キャストのExceptionがlogcatで出ておりますので、データのキャストをどうすれば良いのか、もし、お解りでいらっしゃいましたら、ご教授の程、お願い申し上げたい次第です。
|
5
title
CHANGED
File without changes
|
body
CHANGED
@@ -81,4 +81,16 @@
|
|
81
81
|
|
82
82
|
String item = (String)adapter.getItem(position)
|
83
83
|
|
84
|
-
のitemは「never used」と警告が出ております。
|
84
|
+
のitemは「never used」と警告が出ております。
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
--------------------------------------
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
2019/10/10 PM13:25頃
|
93
|
+
|
94
|
+
HashMapを使わないで試してみましたが、うまくいきませんでした。
|
95
|
+
|
96
|
+
itemにデータが入ってこないのがどうしてなのか、ここが怪しいのではないでしょうか…?
|
4
title
CHANGED
File without changes
|
body
CHANGED
@@ -77,4 +77,8 @@
|
|
77
77
|
HashMapを使っているので、keyとvalueの2つが必要なのに、無理やりStringでキャストしておりましたので、そこが問題でしょうか…?
|
78
78
|
|
79
79
|
|
80
|
-
現在、HashMapを使用せずにデータベースから項目のみ取得してリストビューに渡せるかどうか、試しております。
|
80
|
+
現在、HashMapを使用せずにデータベースから項目のみ取得してリストビューに渡せるかどうか、試しております。
|
81
|
+
|
82
|
+
String item = (String)adapter.getItem(position)
|
83
|
+
|
84
|
+
のitemは「never used」と警告が出ております。
|
3
title
CHANGED
File without changes
|
body
CHANGED
@@ -67,7 +67,9 @@
|
|
67
67
|
ただのlistなら、adapter.removeで削除出来ても、データベースのデータを使う場合は、データベース自体のカラムも削除しなければならないのでしょうか…?
|
68
68
|
|
69
69
|
|
70
|
+
--------------------------------------
|
70
71
|
|
72
|
+
|
71
73
|
2019/10/10 PM12:40頃
|
72
74
|
|
73
75
|
長押しで押されたitemを取得するときに、エラーで型が違うと表示されます。
|
2
title
CHANGED
File without changes
|
body
CHANGED
@@ -64,4 +64,15 @@
|
|
64
64
|
|
65
65
|
今回のArraylistの項目にデータベースのデータを使用しており、短いクリックで項目の詳細画面にIntentしているのですが、その詳細画面で再び、データベースを開いて各々のデータを表示しております。
|
66
66
|
|
67
|
-
ただのlistなら、adapter.removeで削除出来ても、データベースのデータを使う場合は、データベース自体のカラムも削除しなければならないのでしょうか…?
|
67
|
+
ただのlistなら、adapter.removeで削除出来ても、データベースのデータを使う場合は、データベース自体のカラムも削除しなければならないのでしょうか…?
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
2019/10/10 PM12:40頃
|
72
|
+
|
73
|
+
長押しで押されたitemを取得するときに、エラーで型が違うと表示されます。
|
74
|
+
|
75
|
+
HashMapを使っているので、keyとvalueの2つが必要なのに、無理やりStringでキャストしておりましたので、そこが問題でしょうか…?
|
76
|
+
|
77
|
+
|
78
|
+
現在、HashMapを使用せずにデータベースから項目のみ取得してリストビューに渡せるかどうか、試しております。
|
1
title
CHANGED
File without changes
|
body
CHANGED
@@ -57,4 +57,11 @@
|
|
57
57
|
|
58
58
|
項目を削除する前にダイアログも表示させたいのですが、項目自体が削除されないので、次に進めずにとても困っております。
|
59
59
|
|
60
|
-
もし、解決方法がお解りでいらっしゃいましたら、ご教授の程、宜しくお願い申し上げます。
|
60
|
+
もし、解決方法がお解りでいらっしゃいましたら、ご教授の程、宜しくお願い申し上げます。
|
61
|
+
|
62
|
+
|
63
|
+
追伸
|
64
|
+
|
65
|
+
今回のArraylistの項目にデータベースのデータを使用しており、短いクリックで項目の詳細画面にIntentしているのですが、その詳細画面で再び、データベースを開いて各々のデータを表示しております。
|
66
|
+
|
67
|
+
ただのlistなら、adapter.removeで削除出来ても、データベースのデータを使う場合は、データベース自体のカラムも削除しなければならないのでしょうか…?
|