[英]How to load Firebase DB Vaule on detail activity when ListView Item Clicked
我正在開發使用Firebase數據庫作為后端的android應用程序。 從我的Json密鑰檢索的列表視圖項。 例如:-
{
"Player3" : {
"LY" : "ewfw",
"Ty" : "rwerw"
}
}
然后,“ LY”和“ TY”將被加載為“列表”視圖項(工作正常)。 在我想要的是單擊“ LY”或“ TY”(列表視圖項)后,將在詳細信息上顯示“ ewfw”或“ rwerw”。 問題是只有關鍵顯示在明細活動中而不顯示值。 如何為明細活動加載值? 這是我的代碼...
ListItemActivity.Java
public class ListItemActivity5 extends Fragment {
private static final String TAG = "Tab4Fragment";
//String[] values = new String[]{"", "", "", "", "", "", "", "", ""};
ListView listView;
TextView textView;
Array array;
RelativeLayout relativeLayout;
ViewGroup.LayoutParams layoutparams;
private DatabaseReference mDatabase;
RelativeLayout container;
AnimationDrawable anim;
Context context;
//private TextView text;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_conferance, container, false);
//text = (TextView) view.findViewById(R.id.textView1);
listView = (ListView) view.findViewById(R.id.list);
container = (RelativeLayout) view.findViewById(R.id.container5);
final TextView textView1 = (TextView) view.findViewById(R.id.textView1);
anim = (AnimationDrawable) container.getBackground();
anim.setEnterFadeDuration(2000);
anim.setExitFadeDuration(3000);
final ListView listView = (ListView) view.findViewById(R.id.list);
final ArrayList<String> friends = new ArrayList<String>();
mDatabase = FirebaseDatabase.getInstance().getReference("Player");
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(final DataSnapshot dataSnapshot) {
friends.clear();
for (final DataSnapshot player : dataSnapshot.getChildren()) {
Log.i("Player", player.getKey());
friends.add(player.getKey());
player.getValue();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
player.getValue();
//player2 = (String) String.valueOf(player.getValue());
//String topic = String.valueOf(player.getValue());
//topic = (String) parent.getItemAtPosition(position);
Intent intent = new Intent(getContext(), Details.class);
intent.putExtra("key", String.valueOf(player.getValue()));
startActivity(intent);
}
});
}
ArrayAdapter arrayAdapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1,
friends) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
layoutparams = view.getLayoutParams();
TextView textView = (TextView) view.findViewById(android.R.id.text1);
/*YOUR CHOICE OF COLOR*/
textView.setTextColor(Color.WHITE);
textView.setTextSize(22);
//Define your height here.
//layoutparams.height = 240;
view.setLayoutParams(layoutparams);
return view;
}
};
listView.setAdapter(arrayAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return view;
}
}
詳細信息
public class Details extends Activity {
RelativeLayout container;
AnimationDrawable anim;
ScrollView mScrollView;
TextView textView1;
private DatabaseReference mDatabase;
private ListItemActivity1 mylist1;
private DataSnapshot dataSnapshot;
FloatingActionButton floatingActionButton;
private ListItemActivity5 listItemActivity5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ab1);
textView1 = (TextView) findViewById(R.id.textView1);
//mref = new Firebase("https://tafach-love-2.firebaseio.com/");
Intent intent = getIntent();
if(intent.hasExtra("key")){
textView1.setText(intent.getStringExtra("key"));
}
textView1.setMovementMethod(new ScrollingMovementMethod());
}
}
謝謝你的幫助。
我已經回答了我的問題。 我將這些行放入List ItemActivity的代碼中,並在ChildEventListner中設置onclickListner而不是AddEventLister ...
mDatabase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
final String playerName = dataSnapshot.getValue(String.class);
hy.add(playerName);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//player.getValue();
//player2 = (String) String.valueOf(player.getValue());
//String topic = String.valueOf(player.getValue());
//topic = (String) parent.getItemAtPosition(position);
Intent intent = new Intent(getContext(), Details.class);
intent.putExtra("key", String.valueOf(hy.get(position)));
startActivity(intent);
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.