嘿,我正在使用下面的代码作为按下按钮将新文本输入到textview, 但它的滞后并且在我按下它的一半时间不起作用,但另一半时间它工作正常,任何人都有任何idé?
final Button button = (Button) findViewById(R.id.slumpaovrigt);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Random myRandom5 = new Random();
TextView textovrigt = (TextView) findViewById(R.id.textovrigt);
switch(myRandom5.nextInt() %151) {
case 0:
textovrigt.setText("text 1");
break;
case 1:
textovrigt.setText("text 2");
break;
case 2:
textovrigt.setText("text 3");
break;
case 3:
textovrigt.setText("text 4");
break;
}
}
});
}
}
此外,我使用4个不同的xml视图,使用相同的代码但不同的按钮和textview以及不同的文本,每个包含大约150种不同的文本(案例)。
更改了代码abit并且它变得更好,但仍然有点慢
这是java文件中的完整代码
import java.util.Random;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class Ovrigtskamt extends Activity {
Button slumpaovrigt;
TextView textovrigt;
Random slumpaovrigt2 = new Random();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ovrigttext);
super.onCreate(savedInstanceState);
this.setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
slumpaovrigt = (Button) findViewById(R.id.slumpaovrigt);
textovrigt = (TextView)findViewById(R.id.textovrigt);
loadDoc();
}
private void loadDoc(){
String s = "";
for(int x=0;x<=100;x++){
s += "Line: "+String.valueOf(x)+"\n";
}
textovrigt.setMovementMethod(new ScrollingMovementMethod());
textovrigt.setText("Klicka på Slumpa");
slumpaovrigt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
switch(slumpaovrigt2.nextInt() %4) {
case 0:
case 0:
textovrigt.setText("text 1");
break;
case 1:
textovrigt.setText("text 2");
break;
case 2:
textovrigt.setText("text 3");
break;
case 3:
textovrigt.setText("text 4");
break;
}
}
});
}
}
但正如所说的151个不同的文本
答案 0 :(得分:1)
如果没有看到更多,我会说你生成的数字并不总是包含在你的switch语句中。我建议逐行逐步执行代码,看看当你到达switch语句时会发生什么。
答案 1 :(得分:0)
更新:你正在做%151你的代码中有那么多元素吗?不在此代码示例中。请改用%4。
Update2:或random.nextInt(4)
。
我们可以直接看到两个优化,但听起来很奇怪,如果这会导致真正的滞后。
答案 2 :(得分:0)
但它的滞后并且在我按下它的一半时间内不起作用
难怪它的一半时间不起作用,因为你的函数myRandom5.nextInt()%151将产生从-151到151的所有值。
/Math.abs