0

私はここでは初めてで、Android プログラミングも初めてです。したがって、これに関するヘルプは大歓迎です。

私はAndroidアプリを実行しています(基本的にはdeveloper.android.comにある例です)。アプリのアイデアは、ユーザーが最初の画面にメッセージを入力し、2番目の画面にメッセージを表示できるようにすることです。

私が抱えている問題は、「DisplayMessageActivity.java」の「OnCreate」で次のコードを使用すると、アプリケーションが正常に動作し、2 番目の画面にテキストが完全に表示されることです。

public class DisplayMessageActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    setContentView(textView);
}

しかし、私が使用すると、

setContentView(J.layout.activity_display_message);

それ以外の

setContentView(textView);

その後、空白の2番目の画面だけで何も表示されません。

「activity_display_message.xml」のコードは以下の通りです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".DisplayMessageActivity" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     />
</LinearLayout>

だから私の質問は、「active_display_message.xmlを参照するコンテンツビューが機能しない理由と、テキストを表示するためのより良い方法である理由です。

4

3 に答える 3

0

レイアウトで使用するには、まずレイアウトで属性TextViewを設定する必要があります。次に、アクティビティでメソッドを使用して呼び出します。例えば:android:idTextViewactive_display_message.xmlfindViewById

あなたのレイアウトで:

<TextView
    android:id="@+id/text_view_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
/>

次に、アクティビティでそれを呼び出す必要があります。

TextView textView = (TextView) findViewById(R.id.text_view_id)
于 2014-06-20T03:39:12.817 に答える
0

わかりました、これがあなたがしていることです

TextView textView = new TextView(this);

これは、TextView を動的に作成していることを意味します。TextView必要でない限り、xmlファイルにある場合はこれを行う必要はありません。ここでの目的のために、TextView動的に作成する必要はありません。

あなたがすべきことは、ファイルTextViewで作成したを使用することです。を使用して、Java ファイルでxml定義した任意のコントロール (TextView/EditText) にアクセスできます。idは一意になります。 xmlidfindViewById(R.id.control_id)

最初に TextView に ID を割り当てます

    android:id="@+id/tv_1"  // assigning id

レイアウト ファイルは次のようになります。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation = "vertical" >

<TextView
    android:id="@+id/tv_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     />
</LinearLayout>

次に、アクティビティで次のことを行います

public class DisplayMessageActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_xml);    // set the view that you want to display

Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

TextView myTextView = (TextView) findViewById(R.id.tv_1)   // make sure the id is correct
myTextView.setText(message);   // set the value 
myTextView.setTextSize(40);    // you can dynamically modify the text size

}

于 2014-06-20T04:35:34.803 に答える
0

私も Android は初めてなので、これは私にはわからないかもしれませんが、これまでに読んだすべての記事J.layoutR.layout.

于 2014-06-20T03:27:59.707 に答える