在TEXTVIEW中添加分数

时间:2014-10-20 17:35:20

标签: android

我的应用中有自动完成文本视图,文本视图和按钮。单击该按钮时,它将搜索数据库中的单词等于textview上的单词。

FLOW: •来自autocompletetextview的Word(通过单击图像按钮输入)>搜索单词(使用按钮) 条件: •如果单词位于数据库中,则textview将显示相应的分数(也在dbase中),然后自动完成textview应清除文本(以生成另一个单词)。

问题:  1.我如何添加第一个分数,这个分数已经在textview中和下一个单词的分数?  2.如何禁用" EditText" AutoCompleteTextview中的效果?我需要这个来给予"优先级"仅通过图像按钮进行输入(我的意思是,只要你有自动完成文本视图就像你有编辑文本一样)。

任何建议都将受到高度赞赏。 我不知道怎么做,所以我问这个问题。我是android编程的新手。我希望你能理解我的问题和我的语法:)

继承我使用的代码: MainActivity.java

DBAdapter dbHelper;
TextView score;
protected static final String TAG = null;
String generatedString = " ";
AutoCompleteTextView text;
TextView timer;
ImageButton searchWord;
ImageButton image1, image2, image3, image4, image5, image6, image7, image8,
image9, image10, image11, image12, image13, image14, image15, image16;
private CountDownTimer countDownTimer;
private boolean timeHasStarted = false;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

dbHelper =new DBAdapter(this);
searchWord = (ImageButton) findViewById(R.id.searchWord);
image1 = (ImageButton) findViewById(R.id.Button1);

timer = (TextView) this.findViewById(R.id.timer);
timer.setText("00:00:30");
countDownTimer = new MyCountDownTimer(30000,1000);

final AutoCompleteTextView text = (AutoCompleteTextView) findViewById(R.id.textHere);

final ImageButton image1 = (ImageButton) findViewById(R.id.Button1);

final int[] myPics = { images here };


int rando = (int)(Math.random()* 5);
image1.setImageResource(myPics[rando]);
image1.setId(myPics[rando]);


OnClickListener myCommoClickListner = new OnClickListener(){

@Override
public void onClick(View arg0) {
// start timer  when 1 of 16 imagebutton is click ( display letters = image in imagebutton
};



image1.setOnClickListener(myCommoClickListner);
}

@TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressLint("NewApi") public class MyCountDownTimer extends CountDownTimer{
public MyCountDownTimer(long millisInFuture, long countDownInterval){
super(millisInFuture, countDownInterval);
}

@TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressLint("NewApi") @Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished;  
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),  
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),  
TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));  
System.out.println(hms);  
timer.setText(hms);  

}

@Override
public void onFinish() {
timer.setText("Time's Up!");
}
}

//Search
public void viewWord(View view)
{
score = (TextView)findViewById(R.id.yourScore);
String s1= search.getText().toString();
String s2= dbHelper.getData(s1);
score.setText(s2);
}
}

这是我的dbadapter中搜索代码的代码:     public String getData(String word)     {     SQLiteDatabase db = helper.getWritableDatabase();     String [] columns = {DBHelper.WORD,DBHelper.SCORE};     Cursor cursor = db.query(DBHelper.TABLE_NAME,columns,DBHelper.WORD +" ='" + word +"'",null,null,null , 空值);     StringBuffer buffer = new StringBuffer();     而(cursor.moveToNext())     {     int index1 = cursor.getColumnIndex(DBHelper.WORD);     int index2 = cursor.getColumnIndex(DBHelper.SCORE);     String words = cursor.getString(index1);     String score = cursor.getString(index2);     buffer.append(得分+" \ n");     }     return buffer.toString();     }

1 个答案:

答案 0 :(得分:0)

你的问题有点不清楚,但我会根据我对此的解释来尝试回答:

  
    
        
  1. 我如何添加第一个得分,它已经在textview中和下一个单词的得分?
  2.        

我假设您想要将第一个分数和下一个分数相加?

在DBAdapter类中创建一个类来处理搜索和求和。让光标移动到搜索值的第一个实例并将其存储为第一个值。接下来,有一个新查询移动到数据库中的下一行。将此值存储为第二个值。关闭光标。将第一个值和第二个值相加并返回它。

也许你可以尝试类似的东西:

public String getData(String word)
    {
    SQLiteDatabase db = helper.getWritableDatabase();
    String[] columns={DBHelper.WORD, DBHelper.SCORE};
    Cursor cursor=db.query(DBHelper.TABLE_NAME, columns, DBHelper.WORD+ "= '"+word+"'", null, null, null, null);
    StringBuffer buffer = new StringBuffer();
    cursor.moveToFirst(); 
    // Given that you are only finding one instance, while is not necessary and in fact may not do what you want. It will return the LAST instance of your query value
        int index1 =cursor.getColumnIndex(DBHelper.WORD);
        int index2 =cursor.getColumnIndex(DBHelper.SCORE);
        String words =cursor.getString(index1);
        String score =cursor.getString(index2);

    cursor=db.query(DBHelper.TABLE_NAME, columns, "*", null, null, null, null); // "*" should be the wildcard for SQL

        cursor.moveToNext();
        int indexSecond1 =cursor.getColumnIndex(DBHelper.WORD);
        int indexSecond2 =cursor.getColumnIndex(DBHelper.SCORE);
        // Do something with the data


        buffer.append(score +"\n");

    return buffer.toString();
}
  
    
        
  1. 如何在AutoCompleteTextview中禁用“EditText”效果?我需要这个只给出通过图像按钮输入的“优先级”(我的意思是每当你有一个autocompletetextview时它就像你有一个编辑文本)。
  2.        

您可以尝试在XML中将inputType设置为none

或以编程方式:yourEditText.setKeyListener(null);