나는 안드로이드 스튜디오 초보자입니다! 해당 목록 뷰를 클릭하면 google firebase에서 키 (내 앱의 바코드라고도 함)를 검색하려고합니다. 각 키를 검색하고 메서드 오류를 해결할 수 없습니다. 예. 나는 첫 번째 ListView pname : "거시기"를 클릭합니다, 그래서 나는 다른 자바 활동에 키를 전달할 수 있도록 키 (바코드), 97 검색하고 싶습니다 그래서 나머지 데이터를 검색 할 수 있습니다. 다른 활동. Android Firebase cannot resolve method getRef(position) : 나는 같은 많은 다른 코드를 시도안드로이드 파이어베이스가 listview에서 getRef (position) 메서드를 해결할 수 없습니다.
: 여기
잘못된 논리를 얻을 didnt가 희망하는 것은 내 데이터베이스의 그림입니다. 도움이 될 것입니다. 미리 감사드립니다.
private Button AddProduct;
private DatabaseReference database;
private ListView mList;
private ArrayList<String> names = new ArrayList<>();
private ArrayList<String> keys = new ArrayList<>();
ArrayAdapter<String> arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inventory);
AddProduct = (Button) findViewById(R.id.AddProduct);
AddProduct.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Inventory.this, AddProduct.class));
}
});
mList = (ListView) findViewById(R.id.listView2);
arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names);
mList.setAdapter(arrayAdapter);
database = FirebaseDatabase.getInstance().getReference();
mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String value = (String) mList.getItemAtPosition(i);
//Toast.makeText(Inventory.this,value,Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Inventory.this,Edit.class);
intent.putExtra("fk",value);
startActivity(intent);
}
});
database.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
arrayAdapter.clear();
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
arrayAdapter.notifyDataSetChanged();
String barcode = (String) snapshot.child("barcode").getValue();
String name = (String) snapshot.child("pname").getValue();
String exp = (String) snapshot.child("expiration").getValue();
String q = (String) snapshot.child("quantity").getValue();
arrayAdapter.add("Product Name: "+name+"\nExpiry Date: "+exp+ "\nQuantity: "+q+"\nBarcode: "+ barcode);
}
}
@Override
public void onChildChanged(final DataSnapshot dataSnapshot, String s) {
String value = dataSnapshot.getValue(String.class);
String key = dataSnapshot.getKey();
int index = keys.indexOf(key);
names.set(index, value);
arrayAdapter.notifyDataSetChanged();
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
업데이트 : 아래에 표시된 코드 중 하나를 사용했지만 두 방법 모두 오류를 해결할 수 없습니다. 어떤 도움이라도 대단히 감사하겠습니다. 다음은 내가 밖으로 시도 코드가 있지만 아무 소용이
'getRef (position) '을 사용할 때 오류가 무엇입니까? 오류가 없으면 그 행은 무엇을 인쇄합니까? –
@AlexMamo getRef (위치)가 메서드를 확인할 수 없음을 보여줍니다! 내 업데이트에서 볼 수있는 것처럼 다른 코드를 시도했지만 두 코드 모두 메서드 오류를 해결할 수 없습니다! 고마워요. –