0

次の方法を使用して、リストビューから GridView にデータを取得しようとしています。ただし、アプリケーションを実行すると、グリッドビューは表示されずstatslist、更新ボタンのみが表示されます。

コード

public class StatsListActivity extends Activity {
(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
public String PlayerData;
public String playerNumberStr;
public String playerPositionStr;
public String playerTeamStr;
private PlayerStatsDatabase dbHelper;
private SimpleCursorAdapter statsAdapter;
Button updateButton = null;
TextView playerTitle = null;
TextView playerNumber = null;
TextView playerPosition = null;
TextView playerTeam = null;

 public void onCreate (Bundle savedInstanceState) {
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
     super.onCreate(savedInstanceState);
 dbHelper = new PlayerStatsDatabase(this);
      dbHelper.open();


    displayGridView();
 }

 private void displayGridView() {
        // TODO Auto-generated method stub
        //playerTitle.setText (PlayerNameText);
    Cursor cursor = dbHelper.fetchAllStats();
        setContentView(R.layout.scoreupdate);
          // The desired columns to be bound
          String[] columns = new String[] {
            PlayerStatsDatabase.KEY_SCORE,
            PlayerStatsDatabase.KEY_MINUTES,
            PlayerStatsDatabase.KEY_SUBIN,
            PlayerStatsDatabase.KEY_SUBOUT,
            PlayerStatsDatabase.KEY_BOOKING,
          };

          // the XML defined views which the data will be bound to
          int[] to = new int[] { 
            R.id.pGoals,
            R.id.pMinutes,
            R.id.pSubIn,
            R.id.pSubOut,
            R.id.pBook,
          };

          // create the adapter using the cursor pointing to the desired data 
          //as well as the layout information
          statsAdapter = new SimpleCursorAdapter(
            this, R.layout.statslist, 
            cursor, 
            columns, 
            to
            );

          GridView grid= (GridView) findViewById(R.id.gridViewPlayers);
          // Assign adapter to ListView
          grid.setAdapter(statsAdapter);

          statsAdapter.notifyDataSetChanged();
          dbHelper.close();
    }

グリッドが表示されないのはなぜですか? リストビューが空なのはなぜですか?

XML

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id = "@+id/RHE"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_weight="0"
     android:padding="5dp">

 <Button
     android:id="@+id/btnUpdt"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="Update" />

 <GridView
     android:id="@+id/gridViewPlayers"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:numColumns="5" >
 </GridView>

4

1 に答える 1

0

コンパイル エラーがあるため、コードは正常にコンパイルされません。

エラーは

  1. クラス宣言の後のステートメント(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);は何の価値もなく、コンパイル エラーです (トークンの後に識別子が必要です{)。
  2. Java のクラス外でメソッドを宣言または定義することはできません。
  3. メソッドを呼び出すステートメントは、メソッドdisplayGridView();内にある必要があります。

あなたのコードは以下のようでなければなりません

public class StatsListActivity extends Activity
{
    public String PlayerData;
    public String playerNumberStr;
    public String playerPositionStr;
    public String playerTeamStr;
    private PlayerStatsDatabase dbHelper;
    private SimpleCursorAdapter statsAdapter;
    Button updateButton = null;
    TextView playerTitle = null;
    TextView playerNumber = null;
    TextView playerPosition = null;
    TextView playerTeam = null;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        dbHelper = new PlayerStatsDatabase(this);
        dbHelper.open();
        displayGridView();
    }

    private void displayGridView()
    {
        // TODO Auto-generated method stub
        //playerTitle.setText (PlayerNameText);
        Cursor cursor = dbHelper.fetchAllStats();
        setContentView(R.layout.scoreupdate);
        // The desired columns to be bound
        String[] columns = new String[] { PlayerStatsDatabase.KEY_SCORE, PlayerStatsDatabase.KEY_MINUTES, PlayerStatsDatabase.KEY_SUBIN, PlayerStatsDatabase.KEY_SUBOUT, PlayerStatsDatabase.KEY_BOOKING, };
        // the XML defined views which the data will be bound to
        int[] to = new int[] { R.id.pGoals, R.id.pMinutes, R.id.pSubIn, R.id.pSubOut, R.id.pBook, };
        // create the adapter using the cursor pointing to the desired data 
        //as well as the layout information
        statsAdapter = new SimpleCursorAdapter(this, R.layout.statslist, cursor, columns, to);
        GridView grid = (GridView) findViewById(R.id.gridViewPlayers);
        // Assign adapter to ListView
        grid.setAdapter(statsAdapter);
        statsAdapter.notifyDataSetChanged();
        dbHelper.close();
    }
}
于 2013-04-30T04:56:55.953 に答える