2014-03-27 68 views
-2

我想用字符串数组中的长字符串列表制作应用程序。 我想要做的是有一个按钮la显示一个随机的字符串,当按钮被点击。 请有人帮忙。 感谢来自数组的OnClick字符串

这里是我的代码:

公共类PagesFragment扩展片段{

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; 
} 

}

我正在这里errous

tv.setText(MyString的[rgenerator。 nextInt(myString.length)]);

+0

什么是你目前的代码是有帮助的?请在此处提供 –

回答

0

这将做到这一点:

public void onClick(View v) { 
    int i = Math.floor(Math.random() * strings.length); 
    ((Button) v).setText(strings[i]); 
} 

其中strings是你的字符串数组。

+0

public void onClick(View v){ int i = Math.floor(Math.random()* je_nai_jamais.length); ((Button)v).setText(je_nai_jamais [i]); \t \t \t} \t}); return rootView; } } – user3380879

+0

@ user3380879 ??? – BadIdeaException

0

首先生成一个随机数,范围为0到字符串的长度。然后与随机数对应选择String元素。

Random rnd = new Random(); 
int myValue = r.nextInt(max-offset)+offset; 
yourTextView.setText(yourStringArray[myValue]); 
0

如果你想从你想要做

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]); 
}); 
+0

我收到错误消息: – user3380879

+0

TextView txt =(TextView)rootView.findViewById(R.id.textView1); Typeface font = Typeface.createFromAsset(getActivity()。getAssets(),“fonts/pagefonts.ttf”); txt.setTypeface(font); Button button =(Button)rootView.findViewById(R.id.button1); button.setOnClickListener(新View.OnClickListener(){ \t \t \t @覆盖 \t \t \t公共无效的onClick(视图v){ \t \t \t \t INT数= Math.ceil(的Math.random()* ARGS .length); \t \t \t \t TextView tv =(TextView)rootView.findViewById(R.id。JAMAIS); \t \t \t \t tv.setText(args [number]); \t \t \t} \t}); return rootView; } } – user3380879

+0

这可以给你一个数组索引越界异常。使用'Math.floor'代替 – BadIdeaException

0

以及感谢资源字符串数组,但没有你的代码为我工作,所以我尝试四周,这对我来说一个工作。 见:

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;` 
} 

}

可能有的一

相关问题