0
當按鈕被點擊時,我需要創建一個自動列表視圖。用戶在點擊按鈕時輸入兩個數字e,它會從第一個數字到最後一個數字生成一個列表。當我調試應用程序時,控制檯不會顯示任何錯誤,但是當我在設備上啓動它時,我點擊按鈕,應用程序發生意外崩潰。我試圖改變onClick事件中的操作。我試圖做兩個數字的總和,它的工作。問題是。錯誤在哪裏?這是代碼。按下按鈕時創建Android陣列
package com.example.andre.thelist;
import android.app.AlertDialog;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class part2 extends MainActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_the_list);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
/*FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});*/
Button btn = (Button) findViewById(R.id.gen);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(getApplicationContext(), firsto.getClass().getName() + " " + result , Toast.LENGTH_SHORT).show();
EditText firste = (EditText) findViewById(R.id.firstn);
EditText laste = (EditText) findViewById(R.id.lastn);
String firsti = firste.getText().toString();
String lasti = laste.getText().toString();
int firsto = Integer.parseInt(firsti);
int lastoo = Integer.parseInt(lasti);
ListView listMod = (ListView) findViewById(R.id.listMod);
List<Integer> lista = new ArrayList<>();
ArrayAdapter<Integer> arrayAdapter = new ArrayAdapter<>(
part2.this,
android.R.layout.simple_list_item_2,
lista);
for (int i = firsto; i <= lastoo; i++) {
lista.add(i);
}
listMod.setAdapter(arrayAdapter);
listMod.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adattatore, final View componente, int pos, long id) {
final Integer numero = (Integer) adattatore.getItemAtPosition(pos);
//creo il ciclo di controllo valori
if (numero > 0) {
boolean isPrime = true;
for (int i = 2; i <= numero/2; i++) {
if (numero % i == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
AlertDialog alertDialog = new AlertDialog.Builder(part2.this).create();
alertDialog.setTitle("Yeah numero primo");
alertDialog.setMessage("Il numero " + numero + " è un numero primo!");
alertDialog.show();
} else {
Toast.makeText(getApplicationContext(), "Il numero " + numero + " non è un numero primo", Toast.LENGTH_SHORT).show();
}
}
}
});
}
});
}
}
任何幫助,將不勝感激。
OMG的工作!是的,我知道,現在它可以工作,我可以開始重構代碼!謝謝您的幫助。 – andrepogg