0

Androidゲーム用の「名前を入力してください」ページ(ハイスコア用)を作成したいのですが、いくつか問題が発生しています。私はそれをこのように見せたい:

到達しました(= enthst1)

.........ここにスコアがあります.............。

ポイント!(= enthst2)

あなたのスコアを保存するためにあなたの名前を入力してください!(= enthst3)

........名前のEditText....。

戻る(=ボタン)...................入力(=ボタン)

しかし、ContentViewにスコア(int)を追加できないようです!

コードは次のとおりです。

「onCreate」のJava:

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enter_hs);

layo = new RelativeLayout(this);
MySco = new TextView(this) ;


Back = (Button)findViewById(R.id.enthsre1);
Back.setOnClickListener(this);

Enter =(Button)findViewById(R.id.enthsok1);
Enter.setOnClickListener(this);

Eingabe = (EditText) findViewById(R.id.editText1) ;

Texta = (TextView) findViewById(R.id.enthst1) ;
Textb = (TextView) findViewById(R.id.enthst2) ;
Textc = (TextView) findViewById(R.id.enthst3) ;

Intent intentk = getIntent();
kontro = intentk.getStringExtra("from").equals("MainActivity") ;

score = 0 ;

if(kontro == false){
score = punkteRechnen(tuleb, le0leb, le1leb, le2leb) ; //calculate the score
} else {
score = 10 ;
}

scoint = "" + score ;

MySco.setText(scoint) ;
MySco.setTextColor(Color.WHITE) ; 
MySco.setTextSize(20);

/*I know that this will throw me an IllegalStateException (the specified child already has a parent)
layo.addView(Texta) ;
layo.addView(MySco) ;
layo.addView(Textb) ;
layo.addView(Textc) ;
layo.addView(Eingabe) ;
layo.addView(Back) ;
layo.addView(Enter) ;
*/

XML:

<RelativeLayout 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:background="@color/black"
    android:orientation="vertical"
    tools:context=".EnterHSActivity" >

    <TextView
        android:id="@+id/enthst1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="@string/enthst1a"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        android:textSize="20sp"  />

    <TextView
        android:id="@+id/enthst2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layout_centerHorizontal="true"
        android:text="@string/enthst1b"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        android:textSize="20sp"  />

    <TextView
        android:id="@+id/enthst3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="80dp"
        android:layout_centerHorizontal="true"
        android:text="@string/enthst1c"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        android:textSize="18sp"  />

    <Button
        android:id="@+id/enthsre1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="100dp"
        android:text="@string/retour" />

    <Button
        android:id="@+id/enthsok1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="20dp"
        android:layout_marginRight="100dp"
        android:text="@string/allesklar" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/enthsre1"
        android:layout_alignRight="@+id/enthsok1"
        android:layout_below="@+id/enthst3"
        android:ems="10"
        android:inputType="text"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        android:textColorLink="@color/red" >

        <requestFocus />
    </EditText>

</RelativeLayout>

では、スコアをレイアウトに追加するにはどうすればよいですか?

4

3 に答える 3

0

textA、textBなどはXMLファイルにすでに存在し、ビューの子であるため、addViewを呼び出すことはできません。代わりに、XMLファイルに空のRelativeLayoutを作成してから、新しいTextView()を使用してtextAなどを作成し、代わりにそれらをレイアウトに追加する必要があります。

于 2013-01-27T20:11:05.253 に答える
0

ビューがすでにそのレイアウトの子である場合は、ビューをレイアウトに追加しないでください。setcontentviewを呼び出すと、XMLレイアウトが拡張され、それらのすべてのビューが作成され、ビュー階層に追加されます。

MyScoテキストビューをレイアウトXMLに追加し、findviewbyidを呼び出して取得します。ビューを動的に追加することは避けます。非表示のビューをいつでも作成し、後で表示して同様の効果を得ることができます。

onCreateメソッドの変更/削除されたコードは次のとおりです。

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enter_hs);
MySco = (TextView)findViewById(R.id.score);
Intent intentk = getIntent();
kontro = intentk.getStringExtra("from").equals("MainActivity") ;

score = 0 ;

if(kontro == false){
score = punkteRechnen(tuleb, le0leb, le1leb, le2leb) ; //calculate the score
} else {
score = 10 ;
}

scoint = "" + score ;

MySco.setText(scoint) ;
MySco.setTextColor(Color.WHITE) ; 
MySco.setTextSize(20);

レイアウトに次を追加します。

<TextView
        android:id="@+id/score"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        android:textSize="20sp"  />
于 2013-01-27T20:11:24.297 に答える
0

これを試してみてください。

相対レイアウトでテキストビューを追加して、レイアウトにスコアを追加します。

MySco.setLayoutParams(new RelativeLayout.LayoutParams(300,300);
layo.addView(MySco);
于 2013-01-27T20:14:06.060 に答える