0

私の現在のアクティビティがであり、そのメソッドからMain.javaすでにそのレイアウトを宣言しているとします。さて、別のレイアウトにアクセスすることは可能ですか?たとえば、idを持つ別のレイアウトがあると仮定すると、次のコードを実行できなくなります。setContentView(R.layout.layout1)onCreatelayout2TextViewtvMain.java

TextView text = (TextView) findViewById(R.id.tv);
text.setText("blah blah");

tvからの値を設定する方法はありますかMain.java

私の実際のコードは次のとおりです

setContentView(R.layout.layout);
Button button = (Button) findViewById(button);
    button(buttonListener);
Dialog dialog;

リスナーの中には、次のコードがあります。

TextView dialogTitle = (TextView) findViewById(R.id.dialog_title);
        dialogTitle.setText("Email");

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        View customView = getLayoutInflater().inflate(R.layout.dialog, null);
        builder.setView(customView);            

        dialog = builder.create();
                    dialog.show();

私が直面している問題dialog_titleは、dialog.xmlにあり、ではないということです。layout.xml

4

3 に答える 3

3

いつでも必要なXMLレイアウトを膨らませることができます。

    View layout2 = LayoutInflater.from(this).inflate(R.layout.layout2, null);
于 2012-11-09T14:40:29.013 に答える
2

使用できますBundles

アクティビティ1

String your_string = "Hello, World!";
Bundle bundle = new Bundle();
bundle.putString("The key for this string", your_string );

Intent ActivityToLaunch= new Intent(this, ActivityB.class); 
ActivityToLaunch.putExtras(bundle);
this.startActivity(ActivityToLaunch);

アクティビティ2

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout2); //Setup some layout, set to your own

    String content = getIntent().getExtras().getString("The key for this string");
    TextView text = (TextView) findViewById(R.id.tv);
    text.setText(content);     
}

スレッドスターターは、カスタムダイアログを作成したいと言ったので、ここで編集します

これは、カスタムダイアログを生成する私のクラスです。

public class ErrorDialog {

    TextView msgTextView;
    Button toSettings;
    final Context c;
    Dialog errorDialog;


   /**
     * @param c The Context
     * @param title Title of the Dialog
     * @param msg Message og the Dialog
     * @param textOnButton The text on the button
     */

    public ErrorDialog(final Context c, String title, String msg, String textOnButton) {

        this.c = c;
        errorDialog = new Dialog(c);
        errorDialog.setContentView(R.layout.error_dialog);
        errorDialog.setTitle(title);

        msgTextView = (TextView) errorDialog.findViewById(R.id.errorMSG);
        msgTextView.setText(msg);

        toSettings = (Button) errorDialog.findViewById(R.id.toSettings);
        toSettings.setText(text);
        toSettings.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

               //doing operations when the user clicks my button in the dialog. 
            } 
        });

        errorDialog.show();
        errorDialog.setCancelable(true);
    }
}

このクラスを次のように使用します。

new ErrorDialog(getApplicationContext(), "My Title", "My Message to the user", "Text on the button"); 
于 2012-11-09T14:39:35.073 に答える
1
AlertDialog.Builder builder = new AlertDialog.Builder(this);
        View customView = getLayoutInflater().inflate(R.layout.dialog, null);
        builder.setView(customView);      
TextView dialogTitle = (TextView) customView.findViewById(R.id.dialog_title); 
dialogTitle.setText("Email");
于 2012-11-09T15:02:45.200 に答える