Java 我尝试在android中创建一个词汇循环
我正在尝试制作一个类似于词汇卡的应用程序。 我有一个应答数组(数组大小=4)。 我随机创建一个英语单词,然后在答案数组中添加英语单词的真值,并删除土耳其语数组中英语单词的真值,以避免在随机中再次使用。我对其他答案数组执行相同的操作,包括错误的值 问题是数组大小将变为0。例如,我的数组总数为20。当我删除真值时,数组大小将变为19-18-17。。。每次单击,然后程序关闭 这是我的密码:Java 我尝试在android中创建一个词汇循环,java,android,arrays,loops,Java,Android,Arrays,Loops,我正在尝试制作一个类似于词汇卡的应用程序。 我有一个应答数组(数组大小=4)。 我随机创建一个英语单词,然后在答案数组中添加英语单词的真值,并删除土耳其语数组中英语单词的真值,以避免在随机中再次使用。我对其他答案数组执行相同的操作,包括错误的值 问题是数组大小将变为0。例如,我的数组总数为20。当我删除真值时,数组大小将变为19-18-17。。。每次单击,然后程序关闭 这是我的密码: package de.murattekinlive.pwords; import android.conten
package de.murattekinlive.pwords;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class WordsActivity extends AppCompatActivity {
TextView textView;
TextView deneme;
DataBase dataBase;
Button btn_r1,btn_r2,btn_r3,btn_r4;
String [] TR_WORDS;
String [] EN_WORDS;
String [] Answer;
int control_id = 0;
int random ;
Random control;
Random rnd;
int tr,en;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_words);
textView = (TextView) findViewById(R.id.textView);
deneme = (TextView) findViewById(R.id.textView3);
dataBase = new DataBase(getApplicationContext());
rnd= new Random();
btn_r1 = (Button)findViewById(R.id.button_random1);
btn_r1.setOnClickListener(new myClickListener());
btn_r2 = (Button)findViewById(R.id.button_random2);
btn_r2.setOnClickListener(new myClickListener());
btn_r3 = (Button)findViewById(R.id.button_random3);
btn_r3.setOnClickListener(new myClickListener());
btn_r4 = (Button)findViewById(R.id.button_random4);
btn_r4.setOnClickListener(new myClickListener());
ArrayList<Words> enWordlist = (ArrayList<Words>) dataBase.allEnWords();
ArrayList<Words> trWordlist =(ArrayList<Words>) dataBase.allTrWords();
TR_WORDS = new String[trWordlist.size()];
EN_WORDS = new String[enWordlist.size()];
for(int i=0;i<enWordlist.size();i++){
EN_WORDS[i] =enWordlist.get(i).getWORD().toString();
TR_WORDS[i] =trWordlist.get(i).getTR1().toString();
}
tr = new Random().nextInt(TR_WORDS.length);
/*btn_r1.setText(TR_WORDS[en]);
btn_r2.setText(TR_WORDS[new Random().nextInt(TR_WORDS.length)]);
btn_r3.setText(TR_WORDS[new Random().nextInt(TR_WORDS.length)]);
btn_r4.setText(TR_WORDS[new Random().nextInt(TR_WORDS.length)]);*/
ReStart();
}
private class myClickListener implements View.OnClickListener{
public void onClick(View v){
switch ( v.getId() ) {
case R.id.button_random1:
break;
case R.id.button_random2:
break;
case R.id.button_random3:
break;
case R.id.button_random4:
break;
default:
break;
}
WordsActivity.this.ReStart();
}
}
public void ReStart(){
Answer = new String[4];
control = new Random();
control_id = control.nextInt(4);
en = new Random().nextInt(EN_WORDS.length);
final List<String> newTRList = new ArrayList<>();
textView.setText(EN_WORDS[en]);
final int sayi1,sayi2;
sayi1 = TR_WORDS.length;
Collections.addAll(newTRList,TR_WORDS);
// I added true turkish word in answer array
for(int i=0;i<TR_WORDS.length;i++){
if(en == i){
Answer[control_id]=TR_WORDS[i].toString();
newTRList.remove(TR_WORDS[i].toString()); //remove true value from array in order to not use again.
}
}
TR_WORDS = newTRList.toArray(new String[newTRList.size()]);
//I added another values in answer array and I want to remove values that is used because
//I dont want to see same value in answer array.
for(int i=0;i<=3;i++){
if(i == control_id){
}
else if(i == 0){
random=rnd.nextInt(TR_WORDS.length);
Answer[i]=TR_WORDS[random];
}
else if(i == 1){
random=rnd.nextInt(TR_WORDS.length);
Answer[i]=TR_WORDS[random];
}
else if(i == 2){
random=rnd.nextInt(TR_WORDS.length);
Answer[i]=TR_WORDS[random];
}
else if(i == 3){
random=rnd.nextInt(TR_WORDS.length);
Answer[i]=TR_WORDS[random];
}
}
sayi2 =TR_WORDS.length;
deneme.setText(sayi1+"/"+sayi2);
for(int i=0;i<=3;i++){
if(i == control_id){
}
else if(i == 0){
random =rnd.nextInt(TR_WORDS.length);
Answer[i]=TR_WORDS[random];
}
else if(i == 1){
random =rnd.nextInt(TR_WORDS.length);
Answer[i]=TR_WORDS[random];
}
else if(i == 2){
random =rnd.nextInt(TR_WORDS.length);
Answer[i]=TR_WORDS[random];
}
else if(i == 3){
random =rnd.nextInt(TR_WORDS.length);
Answer[i]=TR_WORDS[random];
}
}
for(int j=0;j<=3;j++){
if(j==0){
btn_r1.setText(Answer[j].toString());
}
else if(j==1){
btn_r2.setText(Answer[j].toString());
}
else if(j==2){
btn_r3.setText(Answer[j].toString());
}
else if(j==3){
btn_r4.setText(Answer[j].toString());
}
}
}
}
package de.muratekinlive.pwords;
导入android.content.Intent;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.TextView;
导入android.widget.Toast;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
导入java.util.Random;
公共类WordsActivity扩展了AppCompatActivity{
文本视图文本视图;
TextView deneme;
数据库;
按钮btn_r1、btn_r2、btn_r3、btn_r4;
字符串[]TR_单词;
字符串[]EN_单词;
字符串[]答案;
int control_id=0;
int随机;
随机控制;
随机rnd;
int tr,en;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_words);
textView=(textView)findViewById(R.id.textView);
deneme=(TextView)findViewById(R.id.textView3);
数据库=新数据库(getApplicationContext());
rnd=新随机数();
btn_r1=(按钮)findViewById(R.id.Button_random1);
btn_r1.setOnClickListener(新的myClickListener());
btn_r2=(按钮)findViewById(R.id.Button_random2);
btn_r2.setOnClickListener(新的myClickListener());
btn_r3=(按钮)findViewById(R.id.Button_random3);
btn_r3.setOnClickListener(新的myClickListener());
btn_r4=(按钮)findViewById(R.id.Button_random4);
btn_r4.setOnClickListener(新的myClickListener());
ArrayList enWordlist=(ArrayList)数据库.allEnWords();
ArrayList trWordlist=(ArrayList)数据库.allTrWords();
TR_WORDS=新字符串[trWordlist.size()];
EN_WORDS=新字符串[enWordlist.size()];
for(int i=0;i将for循环更改为:
for(int i=TR_WORDS.length; i >=0 ;i--){
if(en == i){
Answer[control_id]=TR_WORDS[i].toString();
newTRList.remove(TR_WORDS[i].toString()); //remove true value from array in order to not use again.
}
}
以及所有其他以类似方式包含删除的日志。请检查您的日志并共享错误日志并标记它指向的行,好吗?