Variable declarieren: variable is accessed from within inner class

  • 6 Antworten
  • Letztes Antwortdatum
H

Heribert500

Ambitioniertes Mitglied
1
Mahlzeit zusammen
ich bekomme diese Fehler nicht in Griff....
variable is accessed from within inner class, needs to be declare Final
dei der SQL Abfrag Cursor c = db (Codeausschnitt).
Kann mir bitte jemand sagen wasund wo ich hier korrigieren muss

danke im vorraus
heribert500



Code:
public class testrechner extends Activity {
//private ArrayAdapter<String> listAdapter;
Spinner spinner1, spinner2;
TextView dichte1, dichte2;
EditText prozent1, prozent2;
SQLiteDatabase db;

private static String DBNAME = "Testdb";
private static String TABLE = "testtbl";

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

db = openOrCreateDatabase(DBNAME, MODE_PRIVATE, null);
dichte1 = (TextView) findViewById(R.id.dichte1);
dichte2 = (TextView) findViewById(R.id.dichte2);


//spinner1 = (Spinner) findViewById(R.id.spinner1);
//spinner1.setOnItemSelectedListener(this);
//loadSpinnerData1();
Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
DBHelper db = new DBHelper(getApplicationContext());
List<String> listrname = db.getSpinValues();
ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(this, R.layout.spinnerrohstoff, R.id.text, listrname);
spinner1.setAdapter(dataAdapter1);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
String auswahl = parent.getItemAtPosition(pos).toString();
Cursor c = db.rawQuery("select * from testtbl where TRIM(rname) = '" + auswahl.trim() + "'", null);
dichte1.setText("");
if (c.moveToFirst()) {
String d1=c.getString(2);
dichte1.setText(d1);
}
c.close();
}



@Override
public void onNothingSelected(AdapterView<?> parent) {
// code......
}
});
}
 
Ich habe SQL Abfragen zwar noch nie direkt in Android verwendet aber ich denke mit der Variable ist der String auswahl gemeint. Probiere doch einfach mal die Variable final zu machen so wie es im Fehler steht?

Also einfach die Zeile

Code:
String auswahl = parent.getItemAtPosition(pos).toString();

in

Code:
final String auswahl = parent.getItemAtPosition(pos).toString();

ändern.
 
Hallo Daaaaniel,
danke dir.
hatte ich auch schon versucht.
db wird noch immer moniert.
Google macht micht leider auch nicht schlauer.


heribert500

,
 
Ah dann bezieht sich der Fehler wohl auf die Variable db, das hatte ich übersehen. Versuche mal den DBHelper db final zu machen.
 
sorry, leider auch nicht
(ganz???)
jetzt hab ich das Problem bei db.rawQuery - ( cannot resolve method)
 
Heribert500 schrieb:
sorry, leider auch nicht
(ganz???)
jetzt hab ich das Problem bei db.rawQuery - ( cannot resolve method)
Ich sehe gerade dass du zwei Variablen db genannt hast, eine globale und eine lokale. Wahrscheinlich kommt der Fehler deshalb, ändere doch mal die namen.
 
perfekt,
vielen dank

ich habs einfach nicht erkannt ;-{

Schönen Sonntag

heribert500
 
Zurück
Oben Unten