当前位置: 首页 > 面试题库 >

从适配器访问片段

元阳荣
2023-03-14
问题内容

这个想法是我有一个列表视图,其中每个项目都是一个产品,当我单击该项目时,我需要从列表视图的适配器内部的单击中转到另一个片段。

我的适配器是:

package info.android.adapter;

import info.android.ProductFragment;
import info.android.R;

import java.util.ArrayList;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class ProductOffersListAdapter extends BaseAdapter {

    private Context context;
    private ArrayList<info.android.model.ProductsOffers> navProOffers;

    public ProductOffersListAdapter(Context context, ArrayList<info.android.model.ProductsOffers> navProOffers) {
        this.context = context;
        this.navProOffers = navProOffers;
    }

    @Override
    public int getCount() {
        return navProOffers.size();     
    }

    @Override
    public info.android.model.ProductsOffers getItem(int position) {        
        return navProOffers.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater.inflate(R.layout.fragment_row, null);
        }

        convertView.setOnClickListener(new OnClickListener() {
              @Override
              public void onClick(View v) {
                          // I NEED CLALL HERE FRAGMENT_PRODUCT.XML                             
              }
            });

        ImageView img = (ImageView) convertView.findViewById(R.id.image);

        TextView txtCodigo = (TextView) convertView.findViewById(R.id.txtCodigo);
        TextView txtCiudad = (TextView) convertView.findViewById(R.id.txtCiudad);               
        TextView txtVF = (TextView) convertView.findViewById(R.id.txtVF);

        String sVF =  Double.toString(getItem(position).ValorFinal) + "€";

        txtVF.setText(sVF);
        txtCiudad.setText(getItem(position).ciudad);
        txtCodigo.setText(getItem(position).codigo);

        convertView.setTag(getItem(position).codigo);

        img.setImageBitmap(getItem(position).Imagen);

        return convertView;
    }
}

您必须假设所有代码都在工作。

如何转到适配器内的产品Fragment?


问题答案:

为了解决这个问题,我要做的是:

Intent i = new Intent(v.getContext(), MainActivity.class);                      
i.putExtra("fragment_value", "2");
v.getContext().startActivity(i);

在主类中,我将参数作为值,并通过开关在我感兴趣的main中设置了片段。



 类似资料:
  • 我在课堂上做一个Android报警应用程序。警报显示在主活动的RecycerView中,我希望在按下时删除它们。我可以从我设置的警报数据库中清除它,但我不能访问AlarmManager来取消警报,而且PendingIntent的上下文似乎也是错误的。 在最后3行中,context有一个类型不匹配,因为这是一个MyAdapter类型--我不确定我需要在这里放什么,类似于mainActivity.co

  • 但问题是我想知道如何从类中的片段调用方法?这是我的代码 下面是在活动中工作但在片段中不工作的代码

  • 我在项目中有一个后盾,为了从一个片段过渡到另一个片段,我使用以下方法 但我需要通过单击recyclerView中的项目进入片段,为此,我为每个

  • 问题内容: 如何从片段(android.support.v4.app.Fragment)中访问ActionBar。我正在使用Android支持库v4和v7。我没有使用Sherlock库。 承载片段的活动是ActionBarActivity。 我已经阅读了Android帮助片段Fragment,它也导致了我getActivity(),但是没有getSupportActionBar()方法。 问题答案

  • 如何从片段(android.support.v4.app.Fragment)中访问ActionBar。我正在使用Android支持库v4和V7。我不会用夏洛克图书馆的。 承载该片段的活动是ActionBarActivity。 我阅读了Android帮助部分的片段,它也引导了我getActivity(),但是没有getSupportActionBar()方法。

  • 问题内容: 所以我有一个自定义的listview。就像Instagram布局一样,每个列表项中都有1张图片和一堆按钮。所以这是问题所在: 我要实现共享按钮。为此,我尝试创建一个从适配器到活动的回调。但这似乎没有用。这是我到目前为止的内容(我裁剪了不相关的部分): 主要活动 列表适配器 错误日志: 问题答案: 您需要告诉适配器使用哪个OnShareClickedListener()实现。现在,在您的