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

尝试使用setOnClickListener时应用程序崩溃

苏乐
2023-03-14

主要活动

import android.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.view.View;


public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
public void button(View v)
{
    FragmentManager fragmentManager=getFragmentManager();
    frag1 f1=new frag1();
    f1.show(fragmentManager,"TAG");
}
}

碎片

import android.app.DialogFragment;
import android.app.FragmentManager;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;

public class frag1 extends DialogFragment implements View.OnClickListener{
Button button;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup 
container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.frag1,container,false);


}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    button= (Button) getActivity().findViewById(R.id.button);
    button.setOnClickListener((View.OnClickListener) getActivity());

}

@Override
public void onClick(View v) {

Toast.makeText(getActivity(),"working",Toast.LENGTH_LONG).show();
}


} 

这是一个简单对话框的代码。

这里有一个我从中学习的链接。如果我只需通过调用按钮创建对话框,它就可以完全正常工作。

共有2个答案

端木高卓
2023-03-14

将您的线路从

button.setOnClickListener((View.OnClickListener) getActivity());

button.setOnClickListener(this);

还有,用

getSupportFragmentManager() to instead of getFragmentManager()

和进口

import android.support.v4.app.FragmentManager;
拓拔嘉颖
2023-03-14
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup 
container, @Nullable Bundle savedInstanceState) {
View view =inflater.inflate(R.layout.frag1,container,false);
    button= (Button) View.findViewById(R.id.button);

    button..setOnClickListener(new View.OnClickListener()
     {
        @Override
        public void onClick(View v)
         {
           Toast.makeText(getActivity(),"working",Toast.LENGTH_LONG).show();
         }
     });
    return view;


}
 类似资料:
  • 当我运行应用程序时,它工作得很好,但是当我想调试一个变量值时,应用程序就崩溃了。下面是完整的调试日志。我不知道是什么错误来纠正它。你们能帮帮我吗?我读到了一些关于并且我禁用和启用了ADB集成,但没有帮助我。我试图清洁,重建和运行的项目再次和没有帮助我。每次我尝试开始调试时,应用程序都会崩溃。 提前谢谢!!

  • 我正在开发一个Android应用程序,它必须从文件中解析文本。 我的解析器中有以下方法。java类: 每当调用缓冲区时,我都会遇到问题。while循环中的readLine()方法。 我传递以下路径信息File对象是: 现在我已经看了堆栈和在线上的许多帖子,以便尝试解决这个问题,并尝试使用一些解决方案,但没有运气。这是我从错误堆栈跟踪中获得的一个片段。 我确信文件的路径是正确的,因为我在调试时检查了

  • 当我尝试连接Android Studio调试器时,我的一些应用程序崩溃,然后我收到以下错误: 我试着重启Windows 我正在使用最新版本的Android SDK,构建工具,。。。 此崩溃后的部分日志:

  • 我尝试在1个应用程序中构建扫描仪和生成器。当我按下发电机按钮时,它突然崩溃了。我的日志中没有任何错误或警告。 这是我的生成器代码: 主活动代码: 有人知道怎么解决这个问题吗?请帮帮我。 更新 以下是我的生成器xml代码: 我希望这将有助于我的问题:( 更新:这是由我愚蠢的打字错误修正;)。非常感谢迄今为止所有回答我问题的人。我说不出我有多感激。特别是对于那个我已经投票支持正确答案的家伙。你真是个英

  • 问题内容: 我试图弄乱新的RecyclerView,每当我尝试运行它时,我的应用程序立即崩溃。它为我提供了NullPointerException,用于尝试从中访问方法。我查看了其他帖子,发现大多数人都没有,但是我尝试了一下,但完全没有帮助。目前还不确定要怎么做,我们将不胜感激。这里是错误日志:(我会发布图片,但我还没有10位代表) 问题答案: 当没有提供时,通常会发生此问题。您可以这样做: