【问题标题】:OnClick String from array来自数组的 OnClick 字符串
【发布时间】:2023-03-08 00:38:01
【问题描述】:

我想制作一个在字符串数组中包含一长串字符串的应用程序。 我想要做的是让一个按钮 la 在单击按钮时显示一个随机字符串。 有人可以帮忙吗。 谢谢

这是我的代码:

公共类 PagesFragment 扩展 Fragment {

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)]);

【问题讨论】:

  • 您当前的代码是什么?请在此处提供

标签: android string random onclick


【解决方案1】:

这样就可以了:

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

strings 是您的字符串数组。

【讨论】:

  • public void onClick(View v) { int i = Math.floor(Math.random() * je_nai_jamais.length); ((按钮) v).setText(je_nai_jamais[i]); } });返回根视图; } }
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    如果你想从你想做的资源中获取字符串数组

    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.createFromAsset(getActivity().getAssets(), "fonts/pagefonts.ttf"); txt.setTypeface(字体);按钮按钮 = (Button)rootView.findViewById(R.id.button1); button.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]); } });返回根视图; } }
    • 这会给你一个数组索引越界异常。请改用Math.floor
    【解决方案4】:

    嗯,谢谢,但你的代码都不适合我,所以我尝试了一下,这个代码对我有用。 见:

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

    }

    可能对某些人有帮助

    【讨论】:

      猜你喜欢
      • 2019-05-19
      • 2020-03-06
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 2013-01-03
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多