Ich habe eine Listenansicht zu meiner Hauptaktivität, die ihre Daten aus einer Datenbank bezieht.Übergeben von ListView-Elementen, auf die zwischen Aktivitäten geklickt wurde
Das Problem, das ich habe, ist die Übergabe des Textes an die nächste Aktivität basierend auf dem, was der Benutzer in der Liste ausgewählt hat.
Ich bekomme die Listenansicht, um die nächste Aktivität zu öffnen und eine seltsame Zeichenfolge an die nächste Aktivität zu senden, aber es wird nicht die richtige Information gesendet. Hier ist mein Code:
zentral- Code:
package com.example.chris.gymtracker;
import android.content.Intent;
import android.database.Cursor;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class Days extends AppCompatActivity {
dbAddDays dbAddDays;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_days);
dbAddDays = new dbAddDays(this);
final ListView daysListView = (ListView) findViewById(R.id.daysListView);
String[] fromFieldNames = new String[]{dbAddDays.ADDDAYS_KEY_DAYS};
Button addDaysButton = (Button) findViewById(R.id.addDaysButton);
Button refreshButton = (Button)findViewById(R.id.refreshButton);
addDaysButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent startAddDaysActivity = new Intent(Days.this, addDays.class);
startActivity(startAddDaysActivity);
}
});
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
populateDaysListView();
}
});
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, fromFieldNames);
daysListView.setAdapter(adapter);
daysListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view,
int position, long id){
Intent myIntent = new Intent(view.getContext(),selectWorkout.class);
String s = daysListView.getItemAtPosition(position).toString();
myIntent.putExtra("itemSelected",s);
startActivityForResult(myIntent,position);
}
});
}
public void populateDaysListView() {
Cursor cursor = dbAddDays.getDaysData();
String[] fromFieldNames = new String[]{dbAddDays.ADDDAYS_KEY_DAYS};
int[] toViewIDs = new int[]{R.id.addDaysDaysTextView};
SimpleCursorAdapter myCursorAdapter;
myCursorAdapter = new SimpleCursorAdapter(getBaseContext(), R.layout.activity_add_day_text_view, cursor, fromFieldNames, toViewIDs, 0);
ListView myList = (ListView) findViewById(R.id.daysListView);
myList.setAdapter(myCursorAdapter);
}
}
ZWEITER AKTIONSCode:
package com.example.chris.tracker;
import android.content.Intent;
import android.database.Cursor;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class selectWork extends AppCompatActivity {
dbAddDays dbAddDays;
Days Days;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select_work);
Intent intentExtras = getIntent();
//Bundle bun = intentExtras.getExtras();
String s = intentExtras.getStringExtra("itemSelected");
TextView textView = (TextView)findViewById(R.id.textView3);
textView.setText(s);
dbAddDays = new dbAddDays(this);
populateWorkoutGridView();
}
public void populateWorkGridView() {
Cursor cursor = dbAddDays.getWorkoutData();
String[] fromFieldNames = new String[]{dbAddDays.ADDDAYS_KEY_WORKOUT};
int[] toViewIDs = new int[]{R.id.workoutWorkoutTextView};
SimpleCursorAdapter myCursorAdapter;
myCursorAdapter = new SimpleCursorAdapter(getBaseContext(), R.layout.activity_workout_text_view, cursor, fromFieldNames, toViewIDs, 0);
GridView myGrid = (GridView) findViewById(R.id.workoutGridView);
myGrid.setAdapter(myCursorAdapter);
}
}
DAS PROBLEM:
But that bold Android. ... text view should show the text of the item clicked.
Sie haben zwei verschiedene Adapter auf der gleichen Listenansicht. Ich würde vorschlagen, Sie bleiben mit dem CursorAdapter –