2012-03-30 4 views
0

最初に、私がnOObであり、あなたが投稿した質問と回答を読むだけで多くのことを学んだので、ここにいる皆さんに感謝したいと思います。私はエンドユーザに多くのテキストを渡そうとしていますが、新しいクラスや.xmlファイルでこれを行うことができますが、これは煩雑になりつつあります。私はちょうど@string/?????を変更するだけのテキスト文字列の特定のセットのための単一のXMLレイアウトを持つことによってアプリケーションを裏打ちするストリームを考えたボタンonclickとsetTextを使用していますが、xmlファイルの@stringの初期値を変更できないことを知りました。質問は、真ですか?これを行うより効率的な方法があります(つまり、android:textをvarに設定し、javaのvarを特定の文字列に設定する)か、各文字列に対して新しいxmlレイアウトが必要ですか? (それはあなたが私に尋ねると無駄になります)そして少し洞察力があれば、今度は約5つの段落と成長する約250の異なる文字列があります。scrollViewに表示されている文字列の値を変更する

ここまでは私のコードです。私はそれは私が後で使用するために場所に保管したい別のクラスのASO1を呼び出すので、その後のonclick で2テキストビューの行を削除したときに最初のJava

import android.app.Activity; 
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class Monlt extends Activity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.monolt); 


    final MediaPlayer buttonsound = MediaPlayer.create(Monlt.this, (R.raw.buttonclick)); 


      Button button1 = (Button) findViewById(id.button1); 
      Button button2 = (Button) findViewById(id.button2); 
      Button button3 = (Button) findViewById(id.button3); 
      Button button4 = (Button) findViewById(id.button4); 
      Button button5 = (Button) findViewById(id.button5); 
      Button button6 = (Button) findViewById(id.button6); 
      Button button7 = (Button) findViewById(id.button7); 
      Button button8 = (Button) findViewById(id.button8); 
      Button button9 = (Button) findViewById(id.button9); 
      Button button11 = (Button) findViewById(id.button11); 
      Button button12 = (Button) findViewById(id.button12); 
      Button button13 = (Button) findViewById(id.button13); 
      Button button14 = (Button) findViewById(id.button14); 
      Button button15 = (Button) findViewById(id.button15); 
      Button button16 = (Button) findViewById(id.button16); 
      Button button17 = (Button) findViewById(id.button17); 
      Button button18 = (Button) findViewById(id.button18); 
      Button button19 = (Button) findViewById(id.button19); 
      Button button21 = (Button) findViewById(id.button21); 

      button1.setOnClickListener(new View.OnClickListener() { 

       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        buttonsound.start(); 
        final TextView mview = (TextView) findViewById(R.id.solayout2); 
        mview.setText("mono1"); //this was my first string to pass 
        startActivity(new Intent("com.nvar.Sorders.Mono.ASO1")); 

       } 

      }); 

      button2.setOnClickListener(new View.OnClickListener() { 

       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        buttonsound.start(); 
        startActivity(new Intent("com.nvar.Sorders.ASO1")); 
        final TextView mview = (TextView) findViewById(R.id.solayout2); 
        mview.setText("@string/mono2");/this is the second string to pass 
       } 
      }); 
       ` 

スニペットは、今、このコードは動作します。 Aso1 Javaコード ` パッケージcom.nvar.Sorders.Mono;

import com.nvar.Sorders.R; 


import android.app.Activity; 
import android.os.Bundle; 

public class Aso1 extends Activity { 



// Called when the activity is first created. 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.solayout2); 


} 
} 

`

し、最初のXML

`

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/solayout2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="mview"/> 

<!--   android:text="@string/monoaso1"/> 
--> 
<!-- this is were i was playing with the strings /> 
-->   


    </LinearLayout> 


</ScrollView> 

` は、この問題で任意のヘルプは大歓迎、およびJavaに "noobのを" 覚えていることでしょう/アンドロイド!もし私が見ることができる、または見なければならないことのサンプルがあるなら、頭を叩き、正しい方向に私を向けることをためらってください。私は読んで気にしない:) もう一度ありがとう。

答えて

0

* @ string/string_name * in xmlは、値を変更するようには設計されていません。ローカリゼーションに役立つのはそこにあります。現在、そのXMLは、あなたが例フランス

res/values-fr/strings.xml 

のためにあなたがhere.

上でその詳細を読むことができ、次の場所でのような異なる言語で別の文字列のXMLを持つことができます http://developer.android.com/guide/topics/resources/localization.html

res/values/string.xml 

ここに位置しています

ここから、javaからそのstring_nameを参照する方法に移ります。

Resources res = Monlt.this.getResources(); 
mview.setText(res.getString(R.string.string_name)); 
//do something 
mview.setText(res.getString(R.string.mono2)); 
+0

のスクロール可能な段落のようなものがあるでしょう:次に、コードでは、値を更新するには、このような何かを行うことができます私はsetTextを使用するときにクリックした後に、クラスとXMLを実行時エラーが発生します。私がその行を削除すると、アプリケーションは次のクラスと新しいxmlに進みます。私は答えを理解できないか、質問を説明することができなかったかどうかはわかりません。私は最初のクラスのonClickで選択されたオプションに従って別の文字列を表示したいだけの文字列の値に変更したくありません。 – Madtec

+0

申し訳ありませんが、文字列xmlの使用にローカリゼーションリンクを追加するのを忘れていました。テキストを変更するコードも更新しました。 xmlに2つのsting値を宣言する必要があります。また、 'res.getString(R.string.string_id)' –

0

Stringを表示するときに使用できるものはTextViewで、複数の行を持ち、コード内のテキスト値を更新するだけです。デフォルトのテキストは不要です

これは、TextViewの10行の長さになります。

String longText = getVeryLongText(); 
((TextView)findViewById(R.id.my_text)).setText(longText); 

は次に、あなたは私が新しい活動を開始し、新しいを開封しておりますことを指摘したテキスト

関連する問題