Android按钮onclickListener不适用于具有viewPager的片段

疯狂的Mac

我有一个带有ViewPager的简单片段,可通过滑动显示文本。

我正在尝试在如下所示的布局中获取按钮的OnClick事件,但我什么都没有看到,这是我的新手,不确定是否遗漏了任何内容。

这是fragment_proposal.xml

<android.support.v4.view.ViewPager
    android:id="@+id/proposalViewPager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_below="@id/proposalHeader">                                        
</android.support.v4.view.ViewPager>

这是此ViewPager的资源布局(proposal_swipe.xml),它将显示文本。

<Button
        android:id="@+id/proposalNotesBtn"
        android:layout_width="130dp"
        android:layout_height="50dp"
        android:layout_below="@id/notesText"
        android:text="Save Notes" />

<TextView
        android:id="@+id/enteredNotes"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_below="@id/proposalNotesBtn" />

这是我的片段类,我尝试在其中捕获onclickevent

public class ProposalFragment extends Fragment implements View.OnClickListener {

ArrayList<ProposalDetailModel> listProposalDetail;
ViewPager viewPager;
ProposalSwipeAdapter proposalSwipeAdapter;
TextView tv, proposalHeader;
TextView sectionHeader;
Button proposalNotesBtn;
EditText notesText;
ProgressDialog progressDialog;

public ProposalFragment() {
    // Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View proposalDetailView = inflater.inflate(R.layout.fragment_proposal, container, false);
    proposalHeader = (TextView) proposalDetailView.findViewById(R.id.proposalHeader);
    proposalHeader.setTextColor(Color.WHITE);

    Bundle bundle = this.getArguments(); //getActivity().getIntent().getExtras();
    listProposalDetail = bundle.getParcelableArrayList("listDetails");

    View proposalView = inflater.inflate(R.layout.proposal_swipe, container, false);
    proposalNotesBtn = (Button) proposalView.findViewById(R.id.proposalNotesBtn);
    notesText = (EditText) proposalView.findViewById(R.id.notesText);

    proposalNotesBtn.setOnClickListener(new  View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.i("INSIDE CLICK", "INSIDE CLICK");
            new ProposalTask().execute();
        }
    });

    viewPager = (ViewPager) proposalDetailView.findViewById(R.id.proposalViewPager);
    viewPager.setAdapter(new ProposalSwipeAdapter(getContext(), listProposalDetail));
    return proposalDetailView;
}

我确定我想念一些东西。我将返回具有viewpager的布局视图。当我调试时,我看到proposalNotesBtn返回一个对象,但是单击该对象时,我什么都没看到。请在这里任何帮助

这是我的ProposalSwipeAdapter类

public class ProposalSwipeAdapter extends PagerAdapter {

private ArrayList<String> imageResourcess = new ArrayList<>();
private Context context;
private LayoutInflater inflater;

public ProposalSwipeAdapter(Context context, ArrayList<ProposalDetailModel> list) {
    this.context = context;
    //this.imageResourcess = list;
    for (ProposalDetailModel objectProposal : list
            ) {

        this.imageResourcess.add("\t\t\t\t\t\t\t\t\t\t                       PRODUCT/SERVICE \n\n\n\nSERVICE/PRODUCT OFFERED:" + objectProposal.getIntroWhoAreWe() +
                "\n\nTYPE OF CUSTOMERS:" + objectProposal.getAddres() +
                "\n\nWHY WILL THEY BUY IT:" +
                "\n\nPRODUCT PRICE:" +
                "\n\nCOMPETITORS:" +
                "\n\nSERVICE DELIVERY:");
    }

}

@Override
public int getItemPosition(Object object) {
    int index = imageResourcess.indexOf(object);
    if (index == -1)
        return POSITION_NONE;
    else
        return index;
}

@Override
public int getCount() {
    return imageResourcess.size();
    //return imageResources.length;
}

@Override
public boolean isViewFromObject(View view, Object object) {
    return view == object;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View itemView = inflater.inflate(R.layout.proposal_swipe, null);
    //ImageView imageView = (ImageView) itemView.findViewById(R.id.proposalImage);
    //imageView.setImageResource(imageResources[position]);
    TextView tv = (TextView) itemView.findViewById(R.id.proposalText);
    tv.setText(imageResourcess.get(position).toString());
    //tv.setText(imageResources[position]);
    container.addView(itemView);
    Log.i("PROPOSAL VIEW-->", itemView.toString());
    return itemView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    //container.removeView((LinearLayout) object);
    container.removeView((RelativeLayout) object);
}
拉维

您的点击侦听器代码应该在PagerAdapter中 instantiateItem()

@Override
public Object instantiateItem(ViewGroup container, int position) {
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View itemView = inflater.inflate(R.layout.proposal_swipe, null);
    //ImageView imageView = (ImageView) itemView.findViewById(R.id.proposalImage);
    //imageView.setImageResource(imageResources[position]);
    TextView tv = (TextView) itemView.findViewById(R.id.proposalText);
    tv.setText(imageResourcess.get(position).toString());
    //tv.setText(imageResources[position]);

    Log.i("PROPOSAL VIEW-->", itemView.toString());
    proposalNotesBtn = (Button) itemView.findViewById(R.id.proposalNotesBtn);

    proposalNotesBtn.setOnClickListener(new  View.OnClickListener() {
       @Override
       public void onClick(View view) {
          Log.i("INSIDE CLICK", "INSIDE CLICK");
       }
    });
    container.addView(itemView);
    return itemView;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OnClickListener不适用于片段

来自分类Dev

onClickListener不适用于片段

来自分类Dev

具有Spannable的按钮setText不适用于Android 5.0 Lollipop

来自分类Dev

片段共享元素过渡不适用于ViewPager

来自分类Dev

Android-onClickListener不适用于CardView中的ImageButton

来自分类Dev

android:showAsAction =“ always”不适用于标签片段

来自分类Dev

Android片段addToBackStack不适用于导航抽屉

来自分类Dev

Android NiftyDialogEffects库不适用于片段

来自分类Dev

设计模式不适用于 OnClickListener

来自分类Dev

onClickListener 不适用于导航抽屉

来自分类Dev

主题不适用于片段

来自分类Dev

notifyDataSetChanged不适用于片段

来自分类Dev

insertAdjacentHTML不适用于文档片段

来自分类Dev

TouchImageView不适用于ViewPager

来自分类Dev

Android:selectableItemBackground 不适用于带有 xml drawable 的按钮

来自分类Dev

反应本机按钮按下不适用于Android

来自分类Dev

渐变颜色不适用于android studio中的按钮

来自分类Dev

Xamarin 表单按钮 IsVisible 绑定不适用于 Android

来自分类Dev

为什么 Android 主题不适用于单个按钮

来自分类Dev

片段导航不适用于ActionBar上的“后退”按钮,对于实体按钮来说也可以

来自分类Dev

转到 URL 不适用于具有 # 字符的 URL

来自分类Dev

提交按钮不适用于Android,但适用于PC和iPhone

来自分类Dev

方法适用于文字值,但不适用于具有相同值的变量

来自分类Dev

onclick不适用于按钮输入

来自分类Dev

VBA的getElementById不适用于按钮

来自分类Dev

jQuery不适用于按钮事件

来自分类Dev

按钮悬停不适用于透明

来自分类Dev

HorizontalScrollView 不适用于按钮

来自分类Dev

片段- firebaserecycler 适配器不适用于片段

Related 相关文章

热门标签

归档