Как отправить данные из activity в класс Java

#java #sqlite #android-studio

#java #sqlite #android-studio

Вопрос:

как я могу отправить значение int из locwebsActivity в DbBackend.java путем выбора spinner. Я пытаюсь отправить классу позицию spinners, чтобы он считывал соответствующие данные из базы данных.

Спасибо

 public class locwebsActivity extends AppCompatActivity {

private ArrayAdapter<String> listAdapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_locwebs);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    Spinner spinner = (Spinner) findViewById(R.id.spinner);

    final DbBackend dbBackend = new DbBackend(locwebsActivity.this);
    String[] spinnerLists = dbBackend.getAllSpinnerContent();

    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(locwebsActivity.this,android.R.layout.simple_spinner_item, spinnerLists);
    spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(spinnerAdapter);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            return;
        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

}
}
  

класс Java:

 public class DbBackend extends DbObject {

public DbBackend(Context context) {
    super(context);
}

public String[] getAllSpinnerContent(){

    String query = "Select * from content";
    Cursor cursor = this.getDbConnection().rawQuery(query, null);
    ArrayList<String> spinnerContent = new ArrayList<String>();
    if(cursor.moveToFirst()){
        do{
            String word = cursor.getString(cursor.getColumnIndexOrThrow("content"));
            spinnerContent.add(word);
        }while(cursor.moveToNext());
    }
    cursor.close();

    String[] allSpinner = new String[spinnerContent.size()];
    allSpinner = spinnerContent.toArray(allSpinner);

    return allSpinner;
}

}
  

Ответ №1:

Вы могли бы использовать это:

 @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            SharedPreferences sendnumber = getSharedPreferences("name", MODE_PRIVATE);
            SharedPreferences.Editor editor = sendnumber.edit();
            editor.putString("edtTextValue", pro);
            editor.commit();

            return;
        }
  

В DbBackend используйте это:

     Context c = Main212Activity.getContext();

    SharedPreferences sendnumber = c.getSharedPreferences("name", c.MODE_PRIVATE);
    String Uname = sendnumber.getString("edtTextValue", "");

    int Unameint = Integer.valueOf(Uname);
  

Комментарии:

1. @Damien Paul Могу я узнать ваше мнение по этому ответу?