0

わかりましたので、メインの xml ファイルを作成しました。正しいと確信していますが、レイアウトを画面に表示する方法がわかりません。すべての異なるウィジェットの変数を作成し、それらを R.id.main と同じに設定しようとしましたが、画面には何も表示されませんでした。基本的に、xmlで取得したものを画面に表示する方法がわかりません。これは私のコードです。どこが間違っているのか誰か説明してください。

public class MinesweeperActivity extends Activity {

private TableLayout all;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    all = (TableLayout)findViewById(R.id.all);

    }
}

// this is my xml

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/all"
android:stretchColumns="*" 
android:background="@drawable/bground"                                   

>

<TableRow>
    <TextView
    android:id="@+id/Timer"
    android:layout_column="0"
    android:text="000" />
     <TextView
    android:id="@+id/Counter"
    android:layout_column="2"
    android:text="000" />  
    <ImageButton 
    android:id="@+id/Face"
    android:layout_column="1"
    android:background="@drawable/faces"
    android:layout_height="50px" />
</TableRow>
<TableRow>
    <TextView                      
        android:layout_column="0"
        android:layout_height="50px"
        android:layout_span="3"
        android:padding="10dip"/> 
</TableRow>
<TableRow>
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/Mines"
        android:layout_width="260px"
        android:layout_height="260px"
        android:gravity="bottom"
        android:stretchColumns="*"
        android:layout_span="3"        
        android:padding="5dip" >
    </TableLayout>
</TableRow>                          
</TableLayout>
4

2 に答える 2

1

私はあなたのコードを試してみましたが、logcat でエラーが見つかりました**java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_width attribute.**。間違いはこれだと思います..一度試してみると、問題が解決する可能性があります。テーブルレイアウトにレイアウトの幅と高さの属性を指定する必要があります。

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/all"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bground"
    android:stretchColumns="*" >
于 2012-04-20T04:16:54.227 に答える
0

setContentViewR.layout.mainでに置き換えます。findViewById()が現在のコンテンツビューでそのIDを持つビューを検索し、現在のコンテンツビューがであるため、デバッガーでR.layout.<your xml filename>の値を検査する場合はnullになります。xmlリソースからアクティビティにビューを作成する必要がある場合は、LayoutInflaterを使用してレイアウトリソースからビューを作成します。allR.layout.main

于 2012-04-19T20:07:21.007 に答える