Patienten spezifische Daten aus der Datenbank anzeigen

  • Antworten:3
kinberge
  • Forum-Beiträge: 2

10.12.2015, 17:10:42 via Website

Hallo Forum,

ich habe folgendes Problem , ich habe ein ListView wo alle meine Patienten (Name,Vorname) aus einer SQLite Datenbank gelistet werden. Nun möchte ich das wenn man auf einen Patienten klickt , eine neue Seite aufgerufen wird wo verschiedene Daten zu dem Patienten angezeigt werden. Mir geht es nicht darum wie ich die Daten anzeigen kann, sondern das die App weiß das sie nur die Daten zu den Patienten anzeigt den ich auch ausgewählt habe. Also wie stelle ich da am besten eine Verbindung her, so dasss nicht irgendwelche Daten bzw. Daten von einen anderen Patienten angezeigt werden ?

Jeder Patient hat eine ID die automatisch , immer wenn man einen neuen Patienten anlegt, um 1 erhöht wird und alle Daten zu den Patienten befinden sich in einer SQLite Tabelle .

Grüße

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

10.12.2015, 19:21:08 via Website

Hallo kinberge,
Herzlich wilkommen hier im Forum :)

Du hast doch in der ListView einen onItemClickListener um den click auf ein bestimmtes Item zu Identifizieren.
Dann musst du nur noch schauen auf welches Item geclickt wurde und welcher Patzient dahinter steckt.
Übergibst du der ListView ein Array mit werden?
Aus diesem kannst du dan der geclickten position das Item aulsesn und daraus dann eine Patienten ID holen und mit dieser weiterarbeiten, z.b. eine Profilansicht machen.

Falls das noch unklar ist zeig mal was von deinem Code, dann kann ich dir das besser erklären ;)

LG

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
kinberge
  • Forum-Beiträge: 2

11.12.2015, 19:03:23 via Website

    public class Adressbuch extends AppCompatActivity implements  View.OnClickListener{

    Toolbar toolbar;
    ListView lvPatient;
    SearchView svSuche;
    Button bPatientHinzufuegen, bArrowBack, bSettings;
    DatabaseHelper DBHelper = new DatabaseHelper(this);
    public static ArrayList<String> arrayListPatient = new ArrayList<String>();
    ArrayAdapter<String> adapterListViewPatient;


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

        bPatientHinzufuegen = (Button) findViewById(R.id.bPatientHinzufuegen);
        bArrowBack = (Button) findViewById(R.id.bArrowBack);
        bSettings = (Button) findViewById(R.id.bAction_settings);

        bPatientHinzufuegen.setOnClickListener(this);
        bArrowBack.setOnClickListener(this);
        bSettings.setOnClickListener(this);



        lvPatient = (ListView) findViewById(R.id.lvPatient);
        svSuche = (SearchView) findViewById(R.id.svSuche);


        toolbar = (Toolbar)findViewById(R.id.app_searchbar);
        setSupportActionBar(toolbar);


       /* Log.d("Reading:", "Reading all Patient Data..");
        List<Patient> patients = DBHelper.getAllPatientData();

        for(Patient pn : patients){
            String log = "Id: " + pn.getId() + " ,Name:" + pn.getPatientName();
            Log.d("Name: ", log);
        }*/

        DBHelper.getAllPatientData();

        adapterListViewPatient = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,arrayListPatient);
        lvPatient.setAdapter(adapterListViewPatient);



        svSuche.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                adapterListViewPatient.getFilter().filter(newText);

                return false;
            }
        });

        lvPatient.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            }
        });

    }



    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.bPatientHinzufuegen:

                startActivity(new Intent(this, PatientAnlegen.class));

                break;

            case R.id.bArrowBack:

                startActivity(new Intent(this, Login.class));

                break;
        }
    }


}

Hallo Pascal,

ich denke ich weiß was du meinst, habe aber leider noch kein onItemClickListener eingebaut, das ist noch eine Baustelle von mir , die Seite wo man aber hingeleitet wird, wenn man auf den Patienten klickt steht schon.

Grüße

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

11.12.2015, 20:06:47 via Website

Na dann bau doch einfach mal einen ein, und versuche dein Glück ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten