상황 : 목록보기에 클래스 목록이 있습니다. 괜찮 았어. 나는이 같은 목록에서 클래스를 검색 할 수 있어요 :중복 된 이름에서 하나의 값을 얻으려면 어떻게해야합니까?
English
Math
French
이 클래스의 데이터베이스입니다 : 목록 항목을 클릭하면, 이제
, 내가 보여주고 싶은 섹션을 클릭하면 English
목록 항목을 클릭하면 해당 클래스 섹션에 경고 대화 상자가 표시됩니다. 나는 이런 식으로 그렇게 할 수 있어요 :
listclasses.setLongClickable(true);
listclasses.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
final String selectedFromList = (String) listclasses.getItemAtPosition(position);
final DatabaseReference retriev = FirebaseDatabase.getInstance().getReference().child("Class");
retriev.orderByChild("Classname").equalTo(selectedFromList).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
String key=data.getKey();
DatabaseReference referes=FirebaseDatabase.getInstance().getReference().child("Class");
referes.orderByKey().equalTo(key).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
String section=datas.child("section").getValue().toString();
LayoutInflater li = LayoutInflater.from(StudentSearchActivity.this); //inflate converts xml to a view object to use in code
View promptsView = li.inflate(R.layout.info, null); //two parameters, the xml and the root(null means the layout is a child of viewgroup
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
StudentSearchActivity.this); /*alertdialog.builder class,creates a builder for alert dialog, parameter is context */
alertDialogBuilder.setView(promptsView);
final TextView sections = (TextView) promptsView.findViewById(R.id.sections);
sections.setText(section);
alertDialogBuilder.setCancelable(true); //true can be canceled with back key
alertDialogBuilder.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
AlertDialog alertDialog = alertDialogBuilder.create(); //creates alert dialog from builder
alertDialog.show();
}}
문제 : 내가 같은 클래스 이름 예 English
을 가지고 있지만 각자가 섹션에있을 때, 나는 항목의 긴 클릭에 모두의 섹션을 얻을. 예 :
1 단계 : English
항목을 길게 클릭합니다.
2 단계 : 503 섹션의 경고 대화 상자가 나타납니다.
3 단계 : 뒤로 또는 ok
을 누르면 섹션이있는 다른 경고 대화 상자가 나타납니다.
두 섹션 모두 같은 이름이므로 하나의 클래스를 길게 클릭하면 나타나지만 잘못된 것입니다. 해당 영어 수업의 섹션 만 표시되어야하며 다른 영어 수업을 클릭하면이 영어 수업의 섹션도 표시됩니다. Firebase에서이를 해결할 수 있습니까?
저는 addListenerForSingleValueEvent
을 사용 중이며 데이터베이스에도 코드와 마찬가지로 Classname
입니다.
입니까? –
Im 해결할 수 있는지 묻고 있습니까? 그리고 어떻게? 난 그저 중복 된 이름을 길게 클릭해서 그 섹션을 보이기를 원합니다. –
목록에 하나의 "영어"를 표시 하시겠습니까 ??? –