Android 从数组单击字符串
我想制作一个应用程序,在字符串数组中包含一长串字符串。 我想做的是让一个按钮在单击按钮时显示一个随机字符串。 有人能帮忙吗。 谢谢 这是我的密码: 公共类页面片段扩展了片段{Android 从数组单击字符串,android,string,random,onclick,Android,String,Random,Onclick,我想制作一个应用程序,在字符串数组中包含一长串字符串。 我想做的是让一个按钮在单击按钮时显示一个随机字符串。 有人能帮忙吗。 谢谢 这是我的密码: 公共类页面片段扩展了片段{ public PagesFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView
public PagesFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_pages, container, false);
TextView txt = (TextView) rootView.findViewById(R.id.textView1);
Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/pagefonts.ttf");
txt.setTypeface(font);
TextView tv = (TextView) rootView.findViewById(R.id.jamais);
Button btn = (Button)rootView.findViewById(R.id.next);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String[] myString = getResources().getStringArray(R.array.je_nai_jamais);
tv.setText(myString[rgenerator.nextInt(myString.length)]);
}
});
return rootView;
}
}
我这里有点不对劲
tv.setText(myString[rgenerator.nextInt(myString.length)]) 这样就可以了:
public void onClick(View v) {
int i = Math.floor(Math.random() * strings.length);
((Button) v).setText(strings[i]);
}
其中
strings
是字符串数组。首先生成一个随机值,其范围为字符串的0到长度。然后对应随机数选择字符串元素
Random rnd = new Random();
int myValue = r.nextInt(max-offset)+offset;
yourTextView.setText(yourStringArray[myValue]);
如果要从要执行的资源中获取字符串数组
String[] args = getResources().getStringArray(R.array.yourarray'sname);
Button button = (Button)findViewById(yourbutton'sid);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int number = Math.ceil(Math.random() * args.length);
TextView tv = (TextView)findViewById(yourtextview'sid);
tv.setText(args[number]);
});
谢谢,但是你的代码都不适合我,所以我试了一下,这一个适合我。 见: }
这可能对某些人有帮助您当前的代码是什么??请在此提供TextView txt=(TextView)rootView.findViewById(R.id.textView1);Typeface font=Typeface.createFromAsset(getActivity().getAssets(),“fonts/pagefonts.ttf”);设置字体(字体);Button Button=(Button)rootView.findViewById(R.id.button1);setOnClickListener(new View.OnClickListener(){@Override public void onClick(View v){int number=Math.ceil(Math.random()*args.length);TextView tv=(TextView)rootView.findViewById(R.id.jamais);tv.setText(args[number]);});返回rootView;}}这会给您一个数组索引越界异常。使用
Math.floor
代替public void onClick(视图v){int i=Math.floor(Math.random()*je_nai_jamais.length);((按钮)v.setText(je_nai_jamais[i]);});返回rootView;}}
Button next;
public FragmentJeNaiJamais(){}
Random rgenerator = new Random();
Vibrator myVibrator;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_jamais, container, false);
TextView txt = (TextView) rootView.findViewById(R.id.textView1);
Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/pagefonts.ttf");
txt.setTypeface(font);
myVibrator = (Vibrator)getActivity().getSystemService(Context.VIBRATOR_SERVICE);
final TextView iv = (TextView) rootView.findViewById(R.id.jamais);
next = (Button)rootView.findViewById(R.id.next);
next.setOnClickListener(new OnClickListener() {
public void onClick(View V) {
myVibrator.vibrate(70);
String[] args = getResources().getStringArray(R.array.je_nai_jamais);
iv.setText(args[new Random().nextInt(args.length)]);
Typeface fonts = Typeface.createFromAsset(getActivity().getAssets(), "fonts/artbrush.ttf");
iv.setTypeface(fonts);
}
});
return rootView;`
}