-2

Java を使用して構築された TextView の下に ImageView を配置する必要があります。テキストビューには、以前のアクティビティからの情報が表示されています。これが私のコードです:

package com.example.a_simple_ui;
public class MainActivity2 extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);  
    Intent recieve = getIntent();
    String message = recieve.getStringExtra(MainActivity.EXTRA_MESSAGE);
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);
    setContentView(textView);
}
}

だから今、上のテキストビューの下に写真が必要で、背景色を変更します。JavaまたはXMLのいずれか。ありがとうございました。

4

2 に答える 2

2

以下の 2 つの提案から任意のアプローチを使用できます。

1) レイアウト デザインが固定されている場合は、レイアウト ランタイムを追加するよりも、xml ベースのレイアウト (静的レイアウト) を使用することをお勧めします。

そのため、最初に次のような xml レイアウト main_Activity.xml を作成します。

main_Activity.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:orientation="vertical" >

        <TextView
            android:id="@+id/tvDesc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />

        <Imageview
            android:id="@+id/ivIcon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/ic_launcher" />

</LinearLayout>

MainActivity2 .java

パッケージ com.example.a_simple_ui; public class MainActivity2 extends Activity {

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

setContentView(textView);  Intent recieve = getIntent();
String message = recieve.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView =(TextView)findViewById(R.id.tvDesc);
textView.setTextSize(40);
textView.setText(message); } }

2) linearlayout に TextView と Imageview を追加する必要があり、次に setContentView() でその linearlayout を次のように設定する必要があります。

    package com.example.a_simple_ui;
    public class MainActivity2 extends Activity {

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

        Intent recieve = getIntent();
        String message = recieve.getStringExtra(MainActivity.EXTRA_MESSAGE);
        TextView textView = new TextView(this);
        textView.setTextSize(40);
        textView.setText(message);

        ImageView imageView = new ImageView(this);
        imageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        imageView.setImageResource(R.drawable.ic_launcher);

        LinearLayout layout = new LinearLayout(this);
        layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
        layout.setOrientation(LinearLayout.VERTICAL);

        layout.addView(textview);
        layout.addView(imageView);

        setContentView(layout);
    }
    }
于 2013-10-26T20:18:19.623 に答える
0

わかりました、実際には理解できません。なぜTextViewクラスをコンテンツビューとして使用するのですか。その場合、もちろん、デフォルトのテキストビューを拡張して独自のテキストビューを作成し、そのためのイメージビューで特定のレイアウトを作成できますが、最も簡単な (そしてより論理的な) 方法は、アクティビティの lauout ファイルを と で作成することTextViewですImageView

たとえば、次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView  
    android:id="@+id/myImageView"
    android:layout_width="wrap_parent"
    android:layout_height="wrap_content"
    />

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

アクティビティの onCreate メソッドは次のようになります。

@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(textView);  
 Intent recieve = getIntent();
 String message = recieve.getStringExtra(MainActivity.EXTRA_MESSAGE);
 TextView textView = (TextView) findViewById(R.id.myTextView);
 textView.setTextSize(40);
 textView.setText(message);
 ImageView imageView = (ImageView) findViewById(R.id.myImageView);

}

ビューを ID で検索する前に、 setContentView を呼び出す必要があります。

Java から動的な texview を作成する必要がある場合 (コードからは理由がわかりません)、idプロパティを追加LinearLayoutして、id で検索し、それに texview を追加すると、imageview の後に配置されます。

ps実際には、それを行う方法はたくさんあります。私の答えがあなたに合わない場合は、質問をより正確に定義してください

pps 本当に実行時に textView を作成する必要があり、xml レイアウトを使用できない場合は、LinearLayout実行時に作成できます (LinearLayout layout = new LinearLayout(this)その後、textView と ImageView を作成し、その 2 つのビューをそのレイアウトに追加し、その後、このレイアウトをコンテンツとして設定します。アクティビティのビュー

于 2013-10-26T20:06:45.100 に答える