Как я могу решить эту проблему? У меня есть эта ошибка, когда я нажимаю кнопку этого класса.ArrayIndexOutOfBoundsException
У меня есть эта ошибка java.lang.ArrayIndexOutOfBoundsException: length = 18; индекс = -1
public class ConsiglieriReal extends Activity implements OnClickListener {
public static List<Consigliere> consiglieri = new ArrayList<Consigliere>();
DBConsiglieri db3 ;
String access_token;
String refresh_token;
int i = 0;
final String nonAutorizzato = "nonAutorizzato";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_consiglieri_real);
db3 = new DBConsiglieri(getApplicationContext());
db3.open();
access_token = getIntent().getExtras().getString("access_token");
refresh_token = getIntent().getExtras().getString("refresh_token");
String URL_BASE = "http://api-electionup.mybluemix.net/";
String URL_EXTRA = "candidati/consiglieri";
String PARAMS = "access_token=" + access_token;
HTMLRequest htlmRequest = new HTMLRequest(URL_BASE + URL_EXTRA, PARAMS);
String htmlRisposta = htlmRequest.getHTML();
if (htmlRisposta != null) {
// conversione JSON
JSONArray jsonA = null;
try {
jsonA = new JSONArray(htmlRisposta);
for (i = 0; i < jsonA.length();i++) {
Consigliere c = new Consigliere();
JSONObject object = jsonA.getJSONObject(i);
c.setIndice(i + 1);
c.setNome(object.getString("nome"));
c.setVoti(0);
c.setCognome(object.getString("cognome"));
consiglieri.add(c);
TableLayout layout = (TableLayout) findViewById(R.id.table2);
Button bottone1 = new Button(this);
bottone1.setTextColor(0x000000);
bottone1.setHintTextColor(0xffffffff);
bottone1.setHint(consiglieri.get(i).getNome()+"\n"+
consiglieri.get(i).getCognome());
bottone1.setHeight(350);
bottone1.setTextSize(35);
layout.addView(bottone1);
bottone1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
consiglieri.get(v.getId()).setVoti(
consiglieri.get(v.getId()).getVoti() + 1);
db3.update(consiglieri.get(v.getId()).getIndice(),
consiglieri.get(v.getId()).getVoti() + 1);
Intent intent = new Intent(ConsiglieriReal.this,
SindaciReal.class);
Bundle bundle = new Bundle();
bundle.putString("access_token", access_token);
bundle.putString("refresh_token", refresh_token);
intent.putExtras(bundle);
startActivity(intent);
}
});
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),
"Dati sindaci non trovati", Toast.LENGTH_LONG).show();
}
}
for (i = 1; i < consiglieri.size(); i++) {
if (consiglieri.get(i).getVoti() == 50) {
// invio pacchetto api antonio
consiglieri.get(i).setVoti(0);
db3.update(consiglieri.get(i).getIndice(), consiglieri.get(i).getVoti());
}
}
}
public void onBackPressed() {
}
@Override
public void onClick(View v) {
}
}
Вы можете посмотреть на трассировки стека, и это позволит вам номер строки, где ошибка. – rghome