Как отфильтровать и показать имя и адрес в поле редактирования текста в том же упражнении при выборе номера ролла? - PullRequest
0 голосов
/ 17 января 2019

Привет! У меня создан класс Школы занятий.

  • Номер рулона спиннера содержит список номеров рулона из таблицы SchoolClass (SQLITEDB).

  • Есть EDITTEXT - Имя

  • Есть EDITTEXT - Адрес

Я хочу, чтобы при выборе номера рулона -01 из раскрывающегося списка он проверял в базе данных имя и адрес, где номер рулона равен 01, и отображал имя и адрес в соответствующих полях Edittext. и так далее для других номеров роллов

ПРИМЕЧАНИЕ: Я не хочу, чтобы какая-либо кнопка нажималась для поиска, она должна быть динамической при выборе, основанном на textwatcher или другом решении. Просьба предложить

У меня еще нет кода. У меня есть простой код, где я получаю значение для Roll нет, из таблицы базы данных, используя

КОД ДЕЯТЕЛЬНОСТИ КЛАССА:

public class Activity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    DatabaseHelper myDb;
    Spinner RollNumber;
    EditText Name;
    EditText Class;


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


        myDb = new DatabaseHelper( this );
        LotNo1 = (Spinner) findViewById( R.id.SpinnerDropDownSelectRollNo1ModifyScreen );
        Name = (EditText) findViewById( R.id.EditTextName );
        Class = (EditText) findViewById( R.id.EditTextClass );
        FetchRollNumber();

    }
//GEt RollNumber From Table_Class

    private void loadSpinnerRollNumber() {
        // database handler
        DatabaseHelper db = new DatabaseHelper(getApplicationContext());

        // Spinner Drop down elements
        List<String> lables = db.AvailableLot();


        // Creating adapter for spinner
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, lables);

        // Drop down layout style - list view with radio button
        dataAdapter
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        RollNumber.setAdapter(dataAdapter);}

  //Code for Name

  //Code for Class

    }

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

    }

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

    }
}

КОД ПОМОЩИ БАЗЫ ДАННЫХ:

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String Database_Name = "Class";
    public static final int Database_Version = 1;";
    public static final String Table_class = "ClassName";
    public static final String COL_1 = "ID";
    public static final String COL_2 = "RollNo";
    public static final String COL_3 = "Name";
    public static final String COL_4 = "Class";

    public DatabaseHelper(Context context) {
        super( context, Database_Name, null, 1 );
    }

    @Override    
    public void onCreate(SQLiteDatabase db) {
        db.execSQL( "create table " + Table_class+ "(ID INTEGER PRIMARY KEY AUTOINCREMENT DEFAULT 0,ENTRYDATE TEXT,RollNo TEXT,Name TEXT,Class TEXT)" );

    }

        @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL( "DROP TABLE IF EXISTS " + Table_class);

    }

// Update inventory table on stock add

 public List<String> AvailableLot() {

        List<String> labels = new ArrayList<String>();

        // Select All Query

        String selectQuery = "SELECT  * FROM " + Table_class;

        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                labels.add(cursor.getString(3));
            } while (cursor.moveToNext());
        }

        // closing connection
        cursor.close();
        db.close();

        // returning lables
        return labels;
    }

}

1 Ответ

0 голосов
/ 17 января 2019

вызовите следующий метод из вашего SQLiteHandlerHelper в методе setOnItemSelectedListener ()

rollNumSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            if (position != -1) {

                 String jsonResp = db.testData( rollNumArr[position]);                    
                // get this json response and extract name & address then set to respective edittext 
            }
        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {            
        }
    });

затем в SQLiteHandlerHelper добавьте метод

public String testData(String rollNum) {

    String res;
    String selectQuery = "SELECT * FROM tablename where rollNumColumnName = '" +rollNum+ "' ";

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {

            String name = cursor.getString(nameColumnIndex);
            String address = cursor.getString(addressColumnIndex);

            res = "{\"isAvail\":true, \"name\":"+name+", \"address\":"+address+"}";

        } while (cursor.moveToNext());
    } else {
        res = "{\"isAvail\":false}";
    }
    cursor.close();
    db.close();

    return res;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...