1

既存のAndroidプロジェクトの別のクラスに基づいてクラスを指定しました。addRow()メソッドは、テーブルに行を動的に追加することになっています。行に追加する新しいTextViewを作成するとき、およびその行を作成するときに、「コンテキスト」を指定することになっています。現在の方法では、「getApplicationContext()」を試行するとNullPointerExceptionがスローされます。では、どこからそのコンテキストを取得する必要がありますか?

public class DistanceTableView extends ContactListActivity
{
    public void addRow(LocationMessage locationMsg){
        View messageView = theInflater.inflate(R.layout.homepage, null);
        TableLayout table = (TableLayout)messageView.findViewById(R.id.distanceTable);

        TextView senderNameTextView = new TextView(getApplicationContext());
        senderNameTextView.setText(locationMsg.getSenderName());

        TableRow tr = new TableRow(getApplicationContext());
        tr.addView(distanceTextView);
        table.addView(tr);

        rows.addFirst(messageView);
    }
}

私の見解が拡張しているクラス:

public class ContactListActivity extends MapActivity implements
        ConnectionListener {}
4

2 に答える 2

3

クラスのコンストラクターにコンテキストを渡す必要があると思います。

于 2011-01-31T13:34:46.733 に答える
0

代わりにこれを試してください:

TableRow tr = new TableRow(this);

于 2011-01-31T13:35:03.333 に答える