0

Activity を拡張して xml ファイルを解析するクラスがあります。xml ファイル内の必要なテキストは、引数として Java クラスに渡されます。私が抱えている問題は、Java クラスでリソース Layout フォルダーから Android TextViews を参照したいので、テキストを文字列引数に設定できることです。Activity から Java クラスを拡張するか、現在のアクティビティの引数... res/layout のファイルを参照するのは彼らだけですか?

public class xmlClass extends Activity{
    //parse the xml    
    MyDataFile mdf = new MyDataFile(arg1, arg2, arg3, arg4);     
}

public class MyDataFile{
    public MyDataFile(arg1, arg2, arg3, arg4)
    {

    }    
    ******* Here I want to set the Text in a TextView to arg1;
}
4

4 に答える 4

1

2 つのオプションが表示されます。

まず、MyDataFile を次のようにアクティビティからネストされたクラスにします。

public class xmlClass extends Activity{

    //keep TextViews as member
    protected TextView mTextView

    public void onCreate(){
        ...
        setContentView(...)
        mTextView = (TextView)findViewById(R.id.your_text_id);

        //parse your XML
        MyDataFile mdf = new MyDataFile(arg1, arg2, arg3, arg4);
    }

    //make MyDataFile a nested class
    public class MyDataFile{

        public MyDataFile(String arg1,String arg2, ...){
            mTextView.setText(arg1);
        }
    }

2 番目の解決策は、このコンストラクターのように TextViews をパラメーターとして指定することです。

    public MyDataFile(String arg1, TextView textForArg1, ...){
        textForArg1.setText(arg1);
    }
于 2012-06-13T15:39:54.800 に答える
0
TextView yourTextView = (TextView)findViewById(R.id.yourTextViewId);
yourTextView.setText(yourText);
于 2012-06-13T15:37:30.510 に答える
0

レイアウトxmlで、textviewを見つけて次のように設定します。

android:id = "lorem"

次に、アクティビティクラスで:

TextView txt = (TextView) findViewById(R.id.lorem);

どういうわけかデータクラスにtxtを渡します。(引数として渡すことは有効です)。

それで:

txt.setText(arg1);
于 2012-06-13T15:38:21.773 に答える
0

メソッドを呼び出した後、メソッドを使用しfindViewById(R.id.myResId)てビューを見つけることができますsetContentView(R.layout.myLayout);

テキストを a に設定したい場合は、直接TextView使用できます((TextView) findViewById(R.id.myResId)).setText(R.string.myText);

独自のものではないクラス内からビューにアクセスする場合Contextは、メソッド パラメーターにコンテキストを渡してから を呼び出すことができますcontext.findViewById(...)

しかし、これは遅かれ早かれコンテキストリークを引き起こす傾向があります。問題を解決するより良い方法は、テキストのゲッターを用意し、ビューをホストするActivityまたは内から設定することです。Fragment

于 2012-06-13T15:35:40.083 に答える