消息关闭
    暂无新消息!
运行错误Caused by: java.lang.ClassCastException: com.consql.MainActivity cannot be cast to android.app.Activity
代码如下,求大神解救........
package com.consql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

public class MainActivity extends ActionBarActivity {

    protected static final String UserName = null;

protected static final String Password = null;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        new Thread(runnable).start();
    }

    private void setContentView(int activityMain) {
// TODO Auto-generated method stub

}

Handler myHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
Bundle data=new Bundle();
data=msg.getData();

System.out.println("id:"+data.get("id").toString());
System.out.println("content:"+data.get("content").toString());
}
};

Runnable runnable=new Runnable() {
private Connection con = null;

@Override
public void run() {
// TODO Auto-generated method stub
try {
Class.forName("com.mysql.jdbc.Driver");
//引用代码此处需要修改,address为数据IP,Port为端口号,DBName为数据名称,UserName为数据库登录账户,Password为数据库登录密码
con = DriverManager.getConnection("jdbc:mysql://address:Port/DBName",
UserName,Password);

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
testConnection(con); //测试数据库连接
} catch (java.sql.SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void testConnection(Connection con1) throws java.sql.SQLException {
try {
String sql = "select * from oner_alarm"; //查询表名为“table_test”的所有内容
Statement stmt = con1.createStatement(); //创建Statement
ResultSet rs = stmt.executeQuery(sql); //ResultSet类似Cursor

//<code>ResultSet</code>最初指向第一行
Bundle bundle=new Bundle();
while (rs.next()) {
bundle.clear();
bundle.putString("id",rs.getString("id"));
bundle.putString("content",rs.getString("content"));
Message msg=new Message();
msg.setData(bundle);
myHandler.sendMessage(msg);
}

rs.close();
stmt.close();
} catch (SQLException e) {

} finally {
if (con1 != null)
try {
con1.close();
} catch (SQLException e) {}
}  
}
};
}

2个回答

︿ 0
Caused by: java.lang.ClassCastException: com.consql.MainActivity cannot be cast to android.app.Activity
=================

这句的意思是类型转换异常。找到你报错的那行代码,检查下两种数据的类型。