生成随机int

nab*_*eel 4 android

我试图将我作为int的用户输入与Random r进行比较.但我得到类型不匹配错误.我尝试使用Integer.parseint(r)解析Random as int,但即使这样也会给我一个类型不匹配的错误.我在game()函数中做了这一切.

package com.myapplication;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import java.util.Random;


public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }



    public void game(View view) {
        int a = 73;
        TextView textv = (TextView) findViewById(R.id.textView2);
        EditText editText = (EditText) findViewById(R.id.editText);
        String eText=editText.getText().toString();

        int guess = Integer.parseInt(eText);

        if (guess == a){

            textv.setText("You Won");
            Random r = new Random();
            a = Integer.parseInt(r);

        }
        else if(guess < a){

            textv.setText("Higher");
        }

        else if (guess > a){

            textv.setText("Lower");
        }


    }
}
Run Code Online (Sandbox Code Playgroud)

sad*_*egh 7

对于make random int,你可以使用它

Random r = new Random();

int a = r.nextInt((100-10)+1)+10;
Run Code Online (Sandbox Code Playgroud)

这会产生10到100之间的随机int

通常这样使用nextInt两个数字之间的随机

r.nextInt((max-min)+1)+min;
Run Code Online (Sandbox Code Playgroud)

我想我知道你想要什么

完整代码,首先生成一个随机int a,当点击button通话时game,game检查用户号码是否等于a然后显示消息并生成新号码...

public class MainActivity extends ActionBarActivity {

    EditText editText;

    Random r = new Random();
    int a;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_send);

        /*--------Generate First Random int--------*/
        a = r.nextInt((100-10)+1)+10;
        Log.i("LOG", "Random --> " + a);
        /*-----------------------------------------*/

        editText =(EditText) findViewById(R.id.editText);

        Button button=(Button) findViewById(R.id.button);

        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                game(arg0);
            }
        });
    }

    public void game(View view) {

        TextView textv = (TextView) findViewById(R.id.textView2);
        String eText=editText.getText().toString();

        int guess = Integer.parseInt(eText);

        if (guess == a){

            textv.setText("You Won");
            a = r.nextInt((100-10)+1)+10;
        }
        else if(guess < a){

            textv.setText("Higher");
        }

        else if (guess > a){

            textv.setText("Lower");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

» 有关Random in Android的更多信息,请访问此链接

http://developer.android.com/reference/java/util/Random.html