当前位置: 首页 > 知识库问答 >
问题:

为什么onClickListener在我的ViewPager框架中不工作

谭裕
2023-03-14

所以基本上我有一个动态添加和删除片段的浏览器。我要做的是在片段中设置onClick函数,并执行与该片段相关的操作。以下是我的代码。

MainFragment.java

public class MainFragment extends Fragment implements View.OnClickListener {
private static final String ARG_LAYOUT="layout";
private QuoteData quoteData;
private String textTospeak;
private Speaker speaker;
//Returns an Instance of fragment
static Fragment newInstance(int layoutId, QuoteData quoteData) {
    Fragment result=new MainFragment();
    //quoteData = quoteDat;
    Bundle args=new Bundle();
    args.putInt(ARG_LAYOUT, layoutId);
    args.putString("quote", quoteData.getQuote());
    args.putString("author", quoteData.getAuthorName());
    args.putString("imgurl", quoteData.getAuthorName());
    result.setArguments(args);
    return(result);
}

public MainFragment(){}



@Override
public View onCreateView(LayoutInflater inflater,
                         ViewGroup container,
                         Bundle savedInstanceState) {

    View fragmentView = inflater.inflate(getArguments().getInt(ARG_LAYOUT),container, false);
    TextView textview = (TextView)fragmentView.findViewById(R.id.quotetext);
    String text = (String)getArguments().get("quote") +"\n\t\t\t"+getArguments().get("author");
    textview.setText(text);

    ImageView imageView = (ImageView) fragmentView.findViewById(R.id.speak);
    imageButton.setOnClickListener(this);
    return(fragmentView);

}

@Override
public void onClick(View v) {
    //speak();
    Toast.makeText(v.getContext(),"Show me something", Toast.LENGTH_SHORT);
}

}

然后我在Fragment的xml中使用了OnClick属性,并在我的MainActivity中创建了一个函数,这也不起作用。

我错过了什么?

共有1个答案

濮阳安澜
2023-03-14

取代:

@Override
public void onClick(View v) {
    //speak();
    Toast.makeText(v.getContext(),"Show me something", Toast.LENGTH_SHORT);
}

使用:

    @Override
        public void onClick(View v) {
            //speak();
           if(v.getId() == imageButton.getId()){
            Toast.makeText(v.getContext(),"Show me something", Toast.LENGTH_SHORT).show();
          }
        }
 类似资料:
  • 问题内容: HTML从早期开始就有框架,但是在最新版本中已弃用。许多浏览器(我曾尝试使用Internet Explorer)甚至无法正确显示框架。 为什么要这样做?镜框的缺点是什么? 问题答案: 雅各布·尼尔森(JakobNielsen)在1996年的专栏批评镜框。一些关键点: 框架会阻止用户正确标记页面。加载带有书签的框架集页面时,用户先前在框架内单击鼠标没有关系。仅保存外部URL,用户必须导航

  • 有人能找出为什么我的不能工作。也许我错过了什么。我意识到这可能是愚蠢的没有任何更多的上下文比我所展示的,但请您询问,我将很乐意提供更多。 这是一段很大的代码,所以我不知道如何用它生成SSCE。您正在查看的是子类的构造函数,它包含3个面板。此时,只是一个。方法打开一个filechooser,然后加载选定的图像,该图像被绘制到上。图像显示良好,一切正常,除了我调整窗口大小时,没有滚动条。

  • 问题内容: 我很好奇,将框架与PHP一起使用有什么优缺点? 从版本3开始,我一直在使用PHP。无论如何,我从未使用过任何可用于PHP的框架,所以我错过了什么? 问题答案: 框架使您从低级详细信息中抽象出来,使您的工作效率更高,并保护您免受低级错误(例如防止SQL注入攻击)的侵害。 一个好的PHP框架会迫使您分离您的关注点并实现经过验证的体系结构,从而最终改善您的设计,并使您的代码更易于阅读和维护以

  • 这是我对带有RetryScheduler的commandGateway的配置:

  • 我正在尝试构建一个maven构建和创建。战争档案。它显示了错误: [ERROR]未能执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:编译(默认编译)上的项目任务:编译失败:编译失败:[ERROR] /E:/Java_Project/雇员在线注册表单/src/main/java/雇员在线注册表单/控制器/雇员注册ontroller.jav