как попасть на YouTube видео из списка - PullRequest
0 голосов
/ 05 июня 2018

У меня есть список с адаптером, который имеет два текстовых представления.Я хочу получить конкретное намерение, когда я нажимаю конкретный элемент в представлении списка.Например;если элемент имеет textview1 = "a" и textview2 = "b", тогда

if(textview2=="b") { do something. }

мой вопрос: как мне подойти к textview2.

спасибо

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

код адаптера:

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;
        }

}
0 голосов
/ 05 июня 2018

Попробуйте реализовать это в своем адаптере списка просмотра.

  1. Инициализируйте textview1 и textview2 в вашем адаптере списка, как показано ниже в функции getView.
  2. Теперь выполните индивидуальные действия для соответствующих текстовых просмотров в соответствии с требованием.

    public View getView(final int position, View convertView, ViewGroup parent) {
    
        inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View itemView = inflater.inflate(R.layout.sample_layout_item, parent, false);
    
    
    
       TextView textview1 = (TextView) itemView.findViewById(R.id.textview1);
       TextView textview2 = (TextView) itemView.findViewById(R.id.textview2);
    
    
       textview1.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
    
               //Write the code that is required for textview1 onclick.
           }
       });
    
        textview2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
    
                //Write the code that is required for textview2 onclick.
            }
        });
    
    
    
    
    
        return itemView;
    
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...