我有一个带有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] 删除。
我来说两句