0

图片

在此处输入图像描述嗨,我开发了一个使用 MySQL 数据库的应用程序。我有一个检索数据的代码,并试图以数据库的形式显示数据。

是我的 java 代码,它访问数据库并尝试以表格的形式动态打印它。

我的问题是当我在手机上执行时应用程序强制关闭。

我收到以下错误

是我的 php 代码。

4

2 回答 2

1

用于TableLayout以表格的形式显示您的数据。另外要连接到 mySQL 数据库,您需要构建一个连接到数据库的 php 脚本。您还没有显示您的 php 脚本,所以请提供。

于 2013-02-04T05:26:24.133 回答
0

java.lang.ClassCastException:
“抛出表明代码已尝试将对象强制转换为它不是实例的子类。”

您已在 java 类中将 TableLayout 强制转换为 TextView。因此,将 TableLayout 更改为TextViewXML 布局中的。

[编辑]
现在知道了:

为要显示的错误创建一个新的 TextView。然后更改以下行:

 error = (TextView) findViewById(R.id.myErrorView);

[编辑 2]
TableLayout 示例(未编译)

XML 布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<TextView 
    android:id="@+id/myHeading"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TableLayout Example"
/>

<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content"> 

<TableLayout
    android:id="@+id/tablelayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"    
    >

<TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginBottom="2dp" android:layout_gravity="center_horizontal">
    <TextView android:id="@+id/tabletv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ID" android:textStyle="bold" android:layout_gravity="center_horizontal"/>
    <TextView android:id="@+id/tabletv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Name" android:textStyle="bold" android:layout_gravity="center_horizontal"/>
    <TextView android:id="@+id/tabletv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Category" android:textStyle="bold" android:layout_gravity="center_horizontal"/>
    <TextView android:id="@+id/tabletv4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Category" android:textStyle="bold" android:layout_gravity="center_horizontal"/>
</TableRow>

</TableLayout>
</ScrollView>

</LinearLayout>

Java 类

super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);

TableLayout table = (TableLayout) findViewById(R.id.tablelayout1);
TextView heading = (TextView) findViewById(R.id.myHeading);

// Your other codes

//////////////////////

    for(int i=0;i<jArray.length();i++){
        JSONObject json_data = jArray.getJSONObject(i);

        TableRow row = new TableRow(this);
        TableLayout.LayoutParams tableRowParams= new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT);
        tableRowParams.setMargins(0, 0, 0, 2);
        row.setGravity(Gravity.CENTER_HORIZONTAL);
        row.setLayoutParams(tableRowParams);

        TextView t1 = new TextView(this);
        TextView t2 = new TextView(this);
        TextView t3 = new TextView(this);
        TextView t4 = new TextView(this);

        t1.setText(""+json_data.getInt("prod_id"));
        t2.setText(json_data.getString("prod_name"));
        t3.setText(json_data.getString("prod_category"));
        t4.setText(""+json_data.getDouble("prod_cost"));

        t1.setGravity(Gravity.CENTER_HORIZONTAL);
        t2.setGravity(Gravity.CENTER_HORIZONTAL);
        t3.setGravity(Gravity.CENTER_HORIZONTAL);
        t4.setGravity(Gravity.CENTER_HORIZONTAL);

        row.addView(t1);
        row.addView(t2);
        row.addView(t3);
        row.addView(t4);

        table.addView(row);
    }

希望这可以帮助!

于 2013-02-04T05:59:19.540 回答