1

我创建了一个简单的登录表单,通过提供用户名和密码,它会遍历下一页并显示用户名和密码。但我的问题是用户名和密码都没有显示在下一页中。一次只显示一个..因为我是android新手,任何人都可以帮我解决这个问题..

MainActivity.java

public class MainActivity extends Activity {
    public final static String UN = "com.example.loginpage.USERNAME";
    public static final String PWD = "com.example.loginpage.PASSWORD";

    public void sendMessage(View view) {
        Intent intent = new Intent(this, DisplayMessageActivity.class);
        EditText EditText01 = (EditText) findViewById(R.id.EditText01);
        EditText EditText02 = (EditText) findViewById(R.id.EditText02);
        String Un = EditText01.getText().toString();
        String Pwd = EditText02.getText().toString();
        intent.putExtra(UN, Un);
        intent.putExtra(PWD, Pwd);
        startActivity(intent);
    }

我的下一个活动代码是(DisplayMessageActivity)

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_display_message);
     getActionBar().setDisplayHomeAsUpEnabled(true);
     Intent intent = getIntent();
     String message1 = intent.getStringExtra(MainActivity.UN);
     String message2 = intent.getStringExtra(MainActivity.PWD);
     TextView textView1 = new TextView(this);
     textView1.setTextSize(40);
     textView1.setText(message1);
     TextView textView2 = new TextView(this);
     textView2.setTextSize(40);
     textView2.setText(message2);
     setContentView(textView1);
     setContentView(textView2);
 }

我想在下一页显示用户名和密码提前谢谢

4

5 回答 5

1

问题在于setContentView()替换您之前设置的先前布局。尝试addContentView()改用。或者更好的方法是在布局文件 show_login_and_password.xml 中定义这些文本视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <TextView
    android:id="@+id/textview1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

  <TextView
    android:id="@+id/textview2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

</LinearLayout>

然后在你的活动中创建

setContentView(R.layout.show_login_and_password);

TextView t1 = (TextView) findViewById(R.id.textview1);
t1.setText(intent.getStringExtra(MainActivity.UN));

TextView t2 = (TextView) findViewById(R.id.textview2);
t2.setText(intent.getStringExtra(MainActivity.PWD));
于 2012-11-21T09:54:49.187 回答
0

你可以试试这个:

Bundle extras = getIntent().getExtras();
return extras != null ? extras.getString(MainActivity.UN) : "nothing passed in";  
于 2012-11-21T09:56:20.963 回答
0
TextView textView1=new TextView(this);
textView1.setTextSize(40);
textView1.setText(message1);
TextView textView2=new TextView(this);
textView2.setTextSize(40);
textView2.setText(message2);
setContentView(textView1);
setContentView(textView2);

您设置文本视图的方式不会显示出来。在你的activity_display_message 布局xml 中添加这些文本视图怎么样?

首先创建您的 activity_display_message.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <TextView
    android:id="@+id/textview1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

  <TextView
    android:id="@+id/textview2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

</LinearLayout>

像这样更改您的 onCreate() 方法:

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_display_message);
     getActionBar().setDisplayHomeAsUpEnabled(true);
     Intent intent = getIntent();
     String message1 = intent.getStringExtra(MainActivity.UN);
     String message2 = intent.getStringExtra(MainActivity.PWD);
     TextView textView1 = (TextView) findViewById(R.id.textview1);
     textView1.setTextSize(40);
     textView1.setText(message1);
     TextView textView2 = (TextView) findViewById(R.id.textview2);
     textView2.setTextSize(40);
     textView2.setText(message2);
 }
于 2012-11-21T09:55:02.610 回答
0

这是你的问题:

setContentView(textView1);
setContentView(textView2);

第二个调用覆盖第一个。

在 XML 中定义布局并将您的值放入已定义的文本框/标签中

于 2012-11-21T09:55:02.820 回答
0

我的天哪,你怎么能写两次 setContentView。

这是更正的片段。

// Creating a new LinearLayout
LinearLayout parentLayout = new LinearLayout(this);

// Setting the orientation to vertical
parentLayout.setOrientation(LinearLayout.VERTICAL);

LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT);

final TextView txtName = new TextView(this);
final TextView txtPwd = new TextView(this);

txtName.setText(message1);
txtPwd.setText(message2);

// Defining the layout parameters of the TextView
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);

txtName.setLayoutParams(lp);
txtPwd.setLayoutParams(lp);


parentLayout.addView(txtName);
parentLayout.addView(txtPwd);

setContentView(parentLayout, llp);
于 2012-11-21T10:05:30.120 回答