关于Android中的登录表单创建
我已经创建了一个简单的登录表单,通过提供用户名和密码,它将进入下一页并显示用户名和密码。。 但我的问题是用户名和密码都不会显示在下一页中。一次只显示一个。。 因为我是android新手,谁能帮我摆脱这一困境 MainActivity.java关于Android中的登录表单创建,android,android-layout,android-intent,android-widget,Android,Android Layout,Android Intent,Android Widget,我已经创建了一个简单的登录表单,通过提供用户名和密码,它将进入下一页并显示用户名和密码。。 但我的问题是用户名和密码都不会显示在下一页中。一次只显示一个。。 因为我是android新手,谁能帮我摆脱这一困境 MainActivity.java public class MainActivity extends Activity { public final static String UN = "com.example.loginpage.USERNAME"; public st
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)
我想在下一页显示用户名和密码
提前感谢问题在于
setContentView()
替换以前设置的布局。尝试改用addContentView()
。或者更好的方法是在布局文件show\u login\u和\u 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()
替换以前设置的布局。尝试改用addContentView()
。或者更好的方法是在布局文件show\u login\u和\u 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>
你设置文本视图的方式不会显示。在活动\显示\消息布局xml中添加这些文本视图如何?
首先创建活动显示消息.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>
你设置文本视图的方式不会显示。在活动\显示\消息布局xml中添加这些文本视图如何?
首先创建活动显示消息.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(textView1);
setContentView(textView2);
第二个调用覆盖第一个调用
用XML定义布局并将值放入已定义的文本框/标签中这是您的问题:
setContentView(textView1);
setContentView(textView2);
第二个调用覆盖第一个调用
用XML定义布局,并将值放入已定义的文本框/标签中。您可以尝试以下操作:
Bundle extras = getIntent().getExtras();
return extras != null ? extras.getString(MainActivity.UN) : "nothing passed in";
您可以尝试以下方法:
Bundle extras = getIntent().getExtras();
return extras != null ? extras.getString(MainActivity.UN) : "nothing passed in";
天哪,你怎么能写两次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);
天哪,你怎么能写两次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);
你能更清楚地解释一下吗?我是必须替换activity_main.xml中的所有代码还是仅替换txtview中的所有代码?
setContentView()
activity用于设置布局。您可以创建任意数量的布局。因此,由于您有两个活动,所以在xml中预定义两个布局会很方便:activity_main.xml-让您的主要活动输入登录名和密码,activity_show_login_和_password.xml-显示给定的登录名和密码。在onCreate()
方法中设置内容视图后,您可以通过其id检索此版面包含的任何元素,然后根据需要使用它。我做对了,这是因为您的精彩解释。我在第一次尝试时错过了一段代码。非常感谢soo-soo。这真的很有帮助。您能更清楚地解释我吗?我是否必须替换activity_main.xml或txtview中的所有代码单独使用???setContentView()
由活动用于设置布局。您可以创建任意数量的布局。因此,由于您有两个活动,所以在xml中预定义两个布局会很方便:activity_main.xml-让您的主要活动输入登录名和密码,activity_show_login_和_password.xml-显示给定的登录名和密码。在onCreate()
方法中设置内容视图后,您可以通过id检索此版面包含的任何元素,然后根据需要使用它。我做对了,这是对您美丽的解释。我第一次尝试时错过了一个代码。非常感谢soo-soo。这真的很有帮助。我们如何做到这一点?请您详细解释一下。请阅读此手册:也请参考Sean John的答案了解您的答案案例我想他举了一个明确的例子。我们如何做到这一点?请你详细解释一下。请阅读本手册:关于你的案例,请参考肖恩·约翰的答案。我想他举了一个很清楚的例子。你能详细解释一下吗?怎么做?发布你的活动?先显示?先显示?先发布消息>你能详细解释一下吗?怎么做?先发布你的活动?先显示?先发布消息>