java - 当单击按钮时,我调用了一个构造函数,在 android 中显示类转换异常

标签 java android android-sqlite

我使用此构造函数在单击按钮时创建数据库,当我运行它时,它将调用构造函数显示 java.lang.ClasscastException 错误,无论我在 onClickListener< 中进行类型转换 是否正确请大家提出建议

private static Context onClickListene;

public DatabaseHandler3(OnClickListener onClickListene) 
{
    super((Context) onClickListene,DATABASE_NAME, null, DATABASE_VERSION);
    // TODO Auto-generated constructor stub
}

这是构造函数的调用程序

                             button2.setOnClickListener(new OnClickListener()
     {
      public void onClick(View v)
      {
              try
              {
                  final EditText edittxt4 = (EditText)findViewById(R.id.editText4);
                  final EditText edittxt5 = (EditText)findViewById(R.id.editText5);
                  final EditText edittxt6 = (EditText)findViewById(R.id.editText6);

                  String name=edittxt4.getText().toString();
                   String mailfamfri=edittxt5.getText().toString();
                   String phonefamfri=edittxt6.getText().toString();

                 int famatpos=mailfamfri.indexOf("@");
                   int famdotpos=mailfamfri.lastIndexOf(".");

                  int phonecount=phonefamfri.length();

                if(name.equals(""))
                 {
                     Toast.makeText(FiveActivity.this, "You Family or Friends name is empty",Toast.LENGTH_LONG).show();
                 }
                else if(mailfamfri.equals(""))
                {
                 Toast.makeText(FiveActivity.this, "You Families or Friend's Mail-ID is Empty",Toast.LENGTH_LONG).show();
                }
                else if(famatpos<1 || famdotpos<famatpos+2 || famdotpos+2>=mailfamfri.length())
                {
                Toast.makeText(FiveActivity.this, "You Families or Friend's Email-ID is not valid",Toast.LENGTH_LONG).show(); 
                }
                else if(phonefamfri.equals(""))
                 {
                 Toast.makeText(FiveActivity.this, "Phone Number is empty",Toast.LENGTH_LONG).show();
                }
               else if(phonefamfri.contains("[a-zA-z]"))
                {
                Toast.makeText(FiveActivity.this, "Phone Number should not contain any letters ",Toast.LENGTH_LONG).show();  
                }
               else if(phonecount>10 || phonecount<10)
               {
                  Toast.makeText(FiveActivity.this, "Phone Number Should Contain only 10 Numbers",Toast.LENGTH_LONG).show();  
               }

               else
               {
                String phoneno="+91"+phonefamfri; 


             // Toast.makeText(FiveActivity.this, "Good"+phoneno,Toast.LENGTH_LONG).show(); 
                DatabaseHandler3 db = new DatabaseHandler3(this);

                //Toast.makeText(FiveActivity.this,name+mailfamfri+phoneno,Toast.LENGTH_LONG).show(); 

                 Log.d("Insert: ", "Inserting .."); 
                 Log.d("Insert: ", "Inserting .."); 

最佳答案

OnClickListener 不是 Context 的子类,因此如果您尝试强制转换它将给您一个 ClassCastException

您应该使用 ContextActivity 对象。

如果您在Activity中,请尝试使用YourActivityName.this

关于java - 当单击按钮时,我调用了一个构造函数,在 android 中显示类转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21643650/

相关文章:

超出 Java GC 开销限制 - 需要自定义解决方案

java - Encog 神经网络验证/测试

java - 如果我只使用 SQLite 返回一行,是否需要循环? (安卓开发)

android - 为我的 android 应用程序提供一个用 sqlcipher 加密的数据库不起作用,无法打开它

java - 房间数据库 - 外键约束失败错误代码 787

java - 第二次调用带有迭代器的方法会抛出 ConcurrentModificationException

java - 如何使用多态性在运行时根据实例加载 fragment ?

android - 安卓游戏可以同步触摸事件和更新吗?

android - 什么时候sqlite的persist journal mode变成Android默认的journal mode了?

android - 从 BroadcastReceiver 接收数据后进行数据库操作