Android Studio (Java):按下按钮时继续素数循环

Android Studio (Java): Continue prime number for loop on button press

我希望每次单击按钮时都能显示下一个质数,但找不到让它工作的方法。有人帮忙吗?

public class MainActivity extends ActionBarActivity {

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

        Button primeButton = (Button) findViewById(R.id.primeButton);
        primeButton.setOnClickListener(
            new Button.OnClickListener(){
                public void onClick(View v){
                    TextView primeText = (TextView) findViewById(R.id.primeText);
                    int max =  500;
                    for(int i=2; i<=max; i++) {
                        boolean isPrimeNumber = true;
                        for (int j = 2; j <= i; j++) {
                            if (i % j == 0 ) {
                                isPrimeNumber = false;
                                break;
                            }

                        }
                        if (isPrimeNumber){
                            primeText.setText(Integer.toString(i));
                        }
                    }
                }
            }
        );
    }
}

试试这个

public class MainActivity extends Activity {

 Button b;
 int max = 500;
 TextView vTextView;
 int j = 2;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  b = (Button) findViewById(R.id.button1);
  vTextView = (TextView) findViewById(R.id.textView1);

  b.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub

    for (int i = j; i <= max; i++) {
     if (isPrimeNumber(i)) {
      vTextView.setText(i+"");
      j = i+1;
      break;
     }
    }

   }
  });

 }

 public boolean isPrimeNumber(int number) {

  for (int i = 2; i <= number / 2; i++) {
   if (number % i == 0) {
    return false;
   }
  }
  return true;
 }

}

To find out a prime number, prime numbers between two numbers and sum of a prime number

public class MainActivity extends AppCompatActivity {
private EditText etInput;
private EditText et_from, et_to;
private Button btnCheck, btn_print;
private TextView tvResult;
private int inputnumber;
private int fromNumber, toNumber;
private boolean isPrimeNumber = true;
private TextView tv_prime_sum;
private int primeNumbersSum;
private TextView tv_check;

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    findViews();
    btnCheck.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!(etInput.getText().toString().trim() != null && etInput.getText().toString().trim().length() > 0)) {
                etInput.setError("Please enter the number");

            } else {
                inputnumber = Integer.parseInt(etInput.getText().toString());
                for (int i = 2; i <= inputnumber / 2; i++) {
                    if (inputnumber % i == 0) {
                        isPrimeNumber = false;
                        break;
                    }
                }
                if (isPrimeNumber) {
                    tv_check.setText("The given number " + inputnumber + " is a prime number");
                } else {
                    tv_check.setText("The given number " + inputnumber + " is not a prime number");
                }
                isPrimeNumber = true;
            }
        }
    });

    btn_print.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!(et_from.getText().toString().trim() != null && et_from.getText().toString().trim().length() > 0)) {
                et_from.setError("Please enter the number");

            } else if (!(et_to.getText().toString().trim() != null && et_to.getText().toString().trim().length() > 0)) {
                et_to.setError("Please enter the number");
            } else {

                fromNumber = Integer.parseInt(et_from.getText().toString());
                toNumber = Integer.parseInt(et_to.getText().toString());
                if (fromNumber > toNumber) {
                    fromNumber = fromNumber - toNumber;
                    toNumber = fromNumber + toNumber;
                    fromNumber = toNumber - fromNumber;
                }
                StringBuilder stringBuilder = new StringBuilder();

                for (int j = fromNumber; j <= toNumber; j++) {
                    for (int i = 2; i <= j / 2; i++) {
                        if (j % i == 0) {
                            isPrimeNumber = false;
                            break;
                        } else {
                            isPrimeNumber = true;
                        }
                    }
                    if (isPrimeNumber) {
                        Log.v("Primenumber", "list" + j);
                        primeNumbersSum = primeNumbersSum + j;
                        stringBuilder.append(j);
                        stringBuilder.append(",");
                    } else {
                    }
                }
                tvResult.setText(stringBuilder.toString());
                tv_prime_sum.setText("Total sum of prime numbers: " + primeNumbersSum);
                isPrimeNumber = true;
                primeNumbersSum = 0;


            }
        }
    });
}

private void findViews() {
    etInput = findViewById(R.id.et_input);
    btnCheck = findViewById(R.id.btn_check);
    tvResult = findViewById(R.id.tv_result);
    tv_prime_sum = findViewById(R.id.tv_prime_sum);
    et_from = findViewById(R.id.et_from);
    et_to = findViewById(R.id.et_to);
    btn_print = findViewById(R.id.btn_print);
    tv_check = findViewById(R.id.tv_check);

}

}

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
  <EditText
    android:id="@+id/et_input"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="enter the number"
    android:inputType="number"
    android:visibility="visible" />

<Button
    android:id="@+id/btn_check"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/et_input"
    android:layout_centerHorizontal="true"
    android:layout_margin="10dp"
    android:text="Check" />
<TextView
    android:id="@+id/tv_check"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/btn_check"
    android:layout_centerHorizontal="true"
    android:layout_margin="10dp"
    android:text="print the number is prime or not" />

   <EditText
    android:id="@+id/et_from"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tv_check"
    android:hint="from number"
    android:inputType="number" />

<EditText
    android:id="@+id/et_to"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/et_from"
    android:hint="to number"
    android:inputType="number" />

<Button
    android:id="@+id/btn_print"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/et_to"
    android:layout_centerHorizontal="true"
    android:layout_margin="10dp"
    android:text="Print" />
  <TextView
    android:id="@+id/tv_result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/btn_print"
    android:layout_centerHorizontal="true"
    android:text="prints the list of prime numbers" />

<TextView
    android:id="@+id/tv_prime_sum"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tv_result"
    android:layout_centerHorizontal="true"
    android:layout_margin="10dp" />
</RelativeLayout>