回到循环的第一个
Go back to first of loop
我想在同一个 activity(但分开)中创建一个带有“20 个随机图像 + 每个图像下方 4 个按钮”的 activity。
所以,我使用了“for 循环”来做到这一点。
现在,我想 回到循环的开头 当用户单击其中一个按钮时,然后通过应用程序创建图像和另一个随机按钮。
请指导我解决这个问题。
谢谢。
代码:
注意:这段代码不能正常工作,因为下面的语句不能工作:
if (clk==true) continue;
public class testActivity extends Activity {
int falseb;
boolean clk=false;
String truename;
final Random rnd = new Random();
// public String[] picture={"banana","black","camel","cherry"};
String [] picture = new String [] {"camel1","cat1","monkey","dogs" };
List<String> List = new ArrayList<String>(Arrays.asList(picture));
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
final ImageView img = (ImageView) findViewById(R.id.imgRandom);
final Button b1 = (Button) findViewById(R.id.b1);
final Button b2 = (Button) findViewById(R.id.b2);
final Button b3 = (Button) findViewById(R.id.b3);
final Button b4 = (Button) findViewById(R.id.b4);
Typeface font = Typeface.createFromAsset(getAssets(), "koodk.ttf");
b1.setTypeface(font);
b2.setTypeface(font);
b3.setTypeface(font);
b4.setTypeface(font);
for (int num=1;num<20;num++) {
//set Image and 4 options(as Button)by random
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clk=true;
if (((Button) view).getText()==truename){
((Button) view).setBackgroundResource(R.mipmap.true1);
List.remove(rp);
}else {
((Button) view).setBackgroundResource(R.mipmap.fls1);
List.remove(rp);clk=true;
}
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {clk=true;
if (((Button) view).getText()==truename){
((Button) view).setBackgroundResource(R.mipmap.true1);
List.remove(rp);
}else {
((Button) view).setBackgroundResource(R.mipmap.fls1);
List.remove(rp);
}
}
});
if (clk==true) continue;
b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {clk=true;
if (((Button) view).getText()==truename){
((Button) view).setBackgroundResource(R.mipmap.true1);
List.remove(rp);
}else {
((Button) view).setBackgroundResource(R.mipmap.fls1);
List.remove(rp);
}
}
});
if (clk==true) continue;
b4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {clk=true;
if (((Button) view).getText()==truename){
((Button) view).setBackgroundResource(R.mipmap.true1);
List.remove(rp);
}else {
((Button) view).setBackgroundResource(R.mipmap.fls1);
List.remove(rp);
}
}
});
if (clk==true) continue;
}
}
protected final static int getResourceID
(final String resName, final String resType, final Context ctx)
{
final int ResourceID =
ctx.getResources().getIdentifier(resName, resType,
ctx.getApplicationInfo().packageName);
if (ResourceID == 0)
{
throw new IllegalArgumentException
(
"No resource string found with name " + resName
);
}
else
{
return ResourceID;
}
}
}
Try to
for(int i = 0; i < 20; i++){
if(response == false){
//regenerate your list here
i = 0;
}
}
我想在同一个 activity(但分开)中创建一个带有“20 个随机图像 + 每个图像下方 4 个按钮”的 activity。 所以,我使用了“for 循环”来做到这一点。
现在,我想 回到循环的开头 当用户单击其中一个按钮时,然后通过应用程序创建图像和另一个随机按钮。
请指导我解决这个问题。
谢谢。
代码:
注意:这段代码不能正常工作,因为下面的语句不能工作:
if (clk==true) continue;
public class testActivity extends Activity {
int falseb;
boolean clk=false;
String truename;
final Random rnd = new Random();
// public String[] picture={"banana","black","camel","cherry"};
String [] picture = new String [] {"camel1","cat1","monkey","dogs" };
List<String> List = new ArrayList<String>(Arrays.asList(picture));
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
final ImageView img = (ImageView) findViewById(R.id.imgRandom);
final Button b1 = (Button) findViewById(R.id.b1);
final Button b2 = (Button) findViewById(R.id.b2);
final Button b3 = (Button) findViewById(R.id.b3);
final Button b4 = (Button) findViewById(R.id.b4);
Typeface font = Typeface.createFromAsset(getAssets(), "koodk.ttf");
b1.setTypeface(font);
b2.setTypeface(font);
b3.setTypeface(font);
b4.setTypeface(font);
for (int num=1;num<20;num++) {
//set Image and 4 options(as Button)by random
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clk=true;
if (((Button) view).getText()==truename){
((Button) view).setBackgroundResource(R.mipmap.true1);
List.remove(rp);
}else {
((Button) view).setBackgroundResource(R.mipmap.fls1);
List.remove(rp);clk=true;
}
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {clk=true;
if (((Button) view).getText()==truename){
((Button) view).setBackgroundResource(R.mipmap.true1);
List.remove(rp);
}else {
((Button) view).setBackgroundResource(R.mipmap.fls1);
List.remove(rp);
}
}
});
if (clk==true) continue;
b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {clk=true;
if (((Button) view).getText()==truename){
((Button) view).setBackgroundResource(R.mipmap.true1);
List.remove(rp);
}else {
((Button) view).setBackgroundResource(R.mipmap.fls1);
List.remove(rp);
}
}
});
if (clk==true) continue;
b4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {clk=true;
if (((Button) view).getText()==truename){
((Button) view).setBackgroundResource(R.mipmap.true1);
List.remove(rp);
}else {
((Button) view).setBackgroundResource(R.mipmap.fls1);
List.remove(rp);
}
}
});
if (clk==true) continue;
}
}
protected final static int getResourceID
(final String resName, final String resType, final Context ctx)
{
final int ResourceID =
ctx.getResources().getIdentifier(resName, resType,
ctx.getApplicationInfo().packageName);
if (ResourceID == 0)
{
throw new IllegalArgumentException
(
"No resource string found with name " + resName
);
}
else
{
return ResourceID;
}
}
}
Try to
for(int i = 0; i < 20; i++){
if(response == false){
//regenerate your list here
i = 0;
}
}