我想将此cluesDatasource.java中的所有线索调用到Onclick方法。如何从方法中调用多个值。当按下特定单击按钮时,我需要显示Clue1,clue2,clue3
cluesDatasource.java
public Cursor findCur()
{
String idselect= "Select * From Entertainment Order By RANDOM() LIMIT 10";
Cursor cur = database.rawQuery(idselect,null);
return cur;
}
public String findClues(){
Cursor cur=findCur();
if (cur != null) {
cur.moveToFirst();
String Clue1= cur.getString(cur.getColumnIndex(cluesdbhelper.C1));
String Clue2= cur.getString(cur.getColumnIndex(cluesdbhelper.C2));
String Clue3= cur.getString(cur.getColumnIndex(cluesdbhelper.C3));
String Clue4= cur.getString(cur.getColumnIndex(cluesdbhelper.C4));
String Clue5= cur.getString(cur.getColumnIndex(cluesdbhelper.C5));
String Clue6= cur.getString(cur.getColumnIndex(cluesdbhelper.C6));
String Clue7= cur.getString(cur.getColumnIndex(cluesdbhelper.C7));
String Clue8= cur.getString(cur.getColumnIndex(cluesdbhelper.C8));
String Clue9= cur.getString(cur.getColumnIndex(cluesdbhelper.C9));
String Clue10= cur.getString(cur.getColumnIndex(cluesdbhelper.C10));
}
return null;
}
Onclick方法
clues.java
if (v == c1) {
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast,
(ViewGroup) findViewById(R.id.toast_layout_root));
TextView text = (TextView) layout.findViewById(R.id.text);
String Disp = datasource.findClues();
text.setText(Disp);
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
}
我尝试了切换案例方法,但它从不同的行中检索了线索。我需要单行的10条线索。
答案 0 :(得分:1)
传递一些int
值String Disp = datasource.findClues(position);
,然后在findClues()方法中使用switch-case。
public String findClues(int position) {
String Clue1 = null;
Cursor cur = findCur();
if (cur != null&&cur.moveToFirst()) {
// here use switch case
switch (position) {
case 1:
Clue1 = cur.getString(cur.getColumnIndex(cluesdbhelper.C1));
break;
case 2:
Clue1 = cur.getString(cur.getColumnIndex(cluesdbhelper.C2));
break;
case 3:
Clue1 = cur.getString(cur.getColumnIndex(cluesdbhelper.C3));
break;
case 4:
Clue1 = cur.getString(cur.getColumnIndex(cluesdbhelper.C4));
break;
case 5:
Clue1 = cur.getString(cur.getColumnIndex(cluesdbhelper.C5));
break;
default:
break;
}
cur.close()
}
return Clue1;
}
答案 1 :(得分:0)
findclues方法不返回任何字符串。你总是返回null。
如果我理解你的问题,你有兴趣在点击的按钮上逐一发送线索。为此,请记录已使用静态变量提供了多少线索,然后随着更多点击从UI获取线索,继续显示更多线索。
如果要从方法返回多个值,最简单的方法是返回值列表。在你的情况下,它是字符串,所以你可以返回它(一个例子,你可以使用任何其他集合相同)
public List<String> findclues() {
List<String> clues = new ArrayList<String>();
//method logic
//for every clue call
clues.add(clue);
//cleanup
//finally return arraylist
return clues;
}