1
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class ViewId extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView txtArea = new TextView(this);
        txtArea.setId(20);
        txtArea.setText("Hello");

        TextView view = new TextView(this);
        view = (TextView) this.findViewById(20);
        Toast.makeText(this,view.getText(), Toast.LENGTH_LONG).show();
    }
}

上記のコードをEclipseでデバッグすると、ビューの値が変数ウィンドウにnullと表示されます。何が問題ですか?または、テキストビューのIDを設定し、XMLファイルを使用せずにその特定のIDからそのテキストビューを取得する他の方法はありますか?

4

1 に答える 1

5

あなたのコードは少し面倒です。最初に、決して使用しない xml レイアウトで contentview を設定します。また、TextView txtArea を作成し、id を 20 に設定しますが、これは問題ありませんが、このビューをコンテンツに追加することはないため、もちろん後で見つけることができます。

XML でレイアウトを作成し、それを使用するかどうかを決定する必要があります。プログラムで変更することも、プログラムで独自のレイアウトを作成して、コンテンツ ビューを新しく作成したレイアウト/ビューに設定することもできます。

于 2011-03-09T11:35:38.683 に答える