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としてキャストしました。TextViewしたがって、 XMLレイアウトでTableLayoutをに変更します。

[編集]
今すぐ入手:

表示するエラーの新しい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 に答える