1

我有一个非常简单的应用程序,它接受用户文本作为输入并返回它。该应用程序似乎可以工作,除了我想要返回的用户输入下方的按钮。现在它只是返回没有按钮的文本,尽管我已将按钮添加到活动的 xml 文件中。我什至在 xml 文件的图形视图上看到了按钮,所以我知道问题必须是找到一种方法将 xml 文件与 DisplayMessageActivity.java 文件连接起来。下面是我的 DisplayMessageActivity.java 文件的片段,我认为我做错了。也许我不应该调用 setcontentview 函数?

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);      
    // Get the message from the intent
    Intent intention1=getIntent();
    final String message = intention1.getStringExtra(MainActivity.EXTRA_MESSAGE);


    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);

   // Set the text view as the activity layout
      textView.setText(message);
      setContentView(textView);



    }
4

2 回答 2

1

为什么要调用 setContentView(TextView)?您必须膨胀代表您的活动布局的完整布局文件,即;

setContentView(R.layout.activity_layout).  //Inflate the layout of your activity

然后你必须从那个父布局中为你的 Button 充气,这样你就会有类似的东西

Button button = (Button) findViewById(R.id.button1);  //Inflate the button that is inside 
                                                      //that layout

你的 onCreate 应该看起来更像这样

private Button button;

protected void onCreate(Bundle savedInstanceState){
   setContentView(R.layout.activity_layout);   //Call this  first

   button = findViewById(R.id.button_id);
   button.setOnClickListener(this);


   //Inflate whatever other buttons/views you have inside your activity here

确保您还在同一个布局文件中为您的活动定义了您。祝你好运

于 2013-06-26T00:54:09.563 回答
0

这里根本没有Button。你想要做的是调用setContentView()然后你可以inflateView那个如果你想添加一个TextViewsetContentView()只是你告诉它的inflates任何东西ViewLayout在这里,您只告诉您创建inflate的人。TextView

有几种方法可以做到这一点,但最常见的是做一些事情,比如TextViewmain.xmllayout

  TextView tv1;
  Button btn1;
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);      
    // Get the message from the intent
    Intent intention1=getIntent();
    final String message = intention1.getStringExtra(MainActivity.EXTRA_MESSAGE);          
    setContentView(R.layout.activity_display_message);  // where activity_display_message is the name of your xml file
    tv1 = (TextView) findViewById(R.id.text1); // assuming text1 is the id in xml of your TextView
    btn1 = (Button) findVieById(R.id.btn1); // assuming btn1 is the id in xml of your button
   }
 }
于 2013-06-26T00:51:46.613 回答