код адаптера:
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.util.List;
public class injuryadapter extends ArrayAdapter<injury> {
Context context;
List<injury> objects;
public injuryadapter(Context context, int resource, int textViewResourceId, List<injury> objects)
{
super(context, resource, textViewResourceId, objects);
this.context=context;
this.objects=objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater layoutInflater = ((Activity)context).getLayoutInflater();
final View view = layoutInflater.inflate(R.layout.activity_injuryadapter,parent,false);
TextView injuryzone = (TextView)view.findViewById(R.id.injury_zone);
final TextView injurytype = (TextView)view.findViewById(R.id.injury_type);
injury temp = objects.get(position);
injuryzone.setText(String.valueOf(temp.getInjuryZone()));
injurytype.setText(temp.getInjuryType());
return view;
}
}
действие, в котором отображается представление списка и в котором я хочу нажать на элемент в представлении списка и перейти к определенному видео на YouTube:
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemClickListener {
public ListView lv;
public static ArrayList<injury> injuryList;
Button bt1;
injuryadapter injuryadapter;
FirebaseAuth firebaseAuth;
FirebaseUser firebaseUser;
String vidid;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1 = (Button) findViewById(R.id.add_injury);
bt1.setOnClickListener(this);
firebaseAuth = FirebaseAuth.getInstance();
firebaseUser = firebaseAuth.getCurrentUser();
lv = (ListView) findViewById(R.id.lv);
injuryList = new ArrayList<injury>();
injuryadapter= new injuryadapter(this,0,0,injuryList);
lv.setAdapter(injuryadapter);
lv.setOnItemClickListener(this);
showall();
}
public void showall()\\ method to read the extract the users data from the firebase and put it in the list view
{
FirebaseDatabase.getInstance().getReference().child("injury").addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
for (DataSnapshot child : dataSnapshot.getChildren())
{
injury k = child.getValue(injury.class);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if(k.getUid().equals(user.getUid()))
{
injuryList.add(k);
}
}
injuryadapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
}
});
}
public void signout()
{
if (firebaseUser!=null)
{
firebaseAuth.signOut();
}
}
@Override
public boolean onCreateOptionsMenu (Menu menu)
{
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected (MenuItem item)
{
switch (item.getItemId())
{
case R.id.bhp:
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
return true;
case R.id.logout:
signout();
Intent intent1 = new Intent(this, Main2Activity.class);
startActivity(intent1);
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View view)
{
if (bt1==view)
{
Intent intent= new Intent(this, addinjury.class);
startActivity(intent);
}
}
Сначала я подумал прослушать представление списка с помощью метода setItemOnClickListener()
, но не знаю, как подойти к содержанию каждого элемента.
Класс травмы:
public class injury
{
private String InjuryZone;
private String InjuryType;
private String Uid;
public injury()
{
}
public injury(String injuryZone, String injuryType, String uid)
{
InjuryZone = injuryZone;
InjuryType = injuryType;
Uid = uid;
}
public String getInjuryZone()
{
return InjuryZone;
}
public void setInjuryZone(String injuryZone)
{
InjuryZone = injuryZone;
}
public String getInjuryType()
{
return InjuryType;
}
public void setInjuryType(String injuryType)
{
InjuryType = injuryType;
}
public String getUid()
{
return Uid;
}
public void setUid(String uid)
{
Uid = uid;
}
}