从Onclick方法调用局部变量

时间:2013-12-06 06:38:16

标签: android

我想将此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条线索。

2 个答案:

答案 0 :(得分:1)

传递一些intString 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;
}