求助:开发个人用应用,需含9个文本输入框与保存按钮,数据存入第二个Activity
搞定你的安卓个人应用需求!
嘿,这需求其实挺清晰的,就是个典型的「输入页面→数据传递→展示页面」的流程,我给你把代码和步骤都捋明白,直接抄就能用~
第一步:实现输入页面(第一个Activity)
首先咱们先做输入页面的布局,在activity_main.xml里放9个文本输入框和一个保存按钮:
<?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" android:orientation="vertical" android:padding="16dp" android:gap="8dp"> <!-- 9个输入框,给每个设置唯一ID --> <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容1"/> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容2"/> <EditText android:id="@+id/editText3" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容3"/> <EditText android:id="@+id/editText4" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容4"/> <EditText android:id="@+id/editText5" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容5"/> <EditText android:id="@+id/editText6" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容6"/> <EditText android:id="@+id/editText7" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容7"/> <EditText android:id="@+id/editText8" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容8"/> <EditText android:id="@+id/editText9" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容9"/> <!-- 保存按钮 --> <Button android:id="@+id/btnSave" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="保存并查看"/> </LinearLayout>
接下来写输入页面的逻辑代码,分Java和Kotlin两种版本:
Java版本(MainActivity.java)
import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private EditText editText1, editText2, editText3, editText4, editText5, editText6, editText7, editText8, editText9; private Button btnSave; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 绑定所有输入框和按钮 editText1 = findViewById(R.id.editText1); editText2 = findViewById(R.id.editText2); editText3 = findViewById(R.id.editText3); editText4 = findViewById(R.id.editText4); editText5 = findViewById(R.id.editText5); editText6 = findViewById(R.id.editText6); editText7 = findViewById(R.id.editText7); editText8 = findViewById(R.id.editText8); editText9 = findViewById(R.id.editText9); btnSave = findViewById(R.id.btnSave); // 按钮点击事件:获取输入内容,跳转到第二个Activity btnSave.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 获取每个输入框的文本 String input1 = editText1.getText().toString().trim(); String input2 = editText2.getText().toString().trim(); String input3 = editText3.getText().toString().trim(); String input4 = editText4.getText().toString().trim(); String input5 = editText5.getText().toString().trim(); String input6 = editText6.getText().toString().trim(); String input7 = editText7.getText().toString().trim(); String input8 = editText8.getText().toString().trim(); String input9 = editText9.getText().toString().trim(); // 创建Intent,跳转到第二个Activity(DisplayActivity) Intent intent = new Intent(MainActivity.this, DisplayActivity.class); // 把每个输入内容存入Intent,用唯一的key标识 intent.putExtra("INPUT_1", input1); intent.putExtra("INPUT_2", input2); intent.putExtra("INPUT_3", input3); intent.putExtra("INPUT_4", input4); intent.putExtra("INPUT_5", input5); intent.putExtra("INPUT_6", input6); intent.putExtra("INPUT_7", input7); intent.putExtra("INPUT_8", input8); intent.putExtra("INPUT_9", input9); // 启动第二个Activity startActivity(intent); } }); } }
Kotlin版本(MainActivity.kt)
import android.content.Intent import android.os.Bundle import android.widget.Button import android.widget.EditText import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 绑定视图 val editText1 = findViewById<EditText>(R.id.editText1) val editText2 = findViewById<EditText>(R.id.editText2) val editText3 = findViewById<EditText>(R.id.editText3) val editText4 = findViewById<EditText>(R.id.editText4) val editText5 = findViewById<EditText>(R.id.editText5) val editText6 = findViewById<EditText>(R.id.editText6) val editText7 = findViewById<EditText>(R.id.editText7) val editText8 = findViewById<EditText>(R.id.editText8) val editText9 = findViewById<EditText>(R.id.editText9) val btnSave = findViewById<Button>(R.id.btnSave) // 按钮点击逻辑 btnSave.setOnClickListener { // 获取输入内容 val input1 = editText1.text.toString().trim() val input2 = editText2.text.toString().trim() val input3 = editText3.text.toString().trim() val input4 = editText4.text.toString().trim() val input5 = editText5.text.toString().trim() val input6 = editText6.text.toString().trim() val input7 = editText7.text.toString().trim() val input8 = editText8.text.toString().trim() val input9 = editText9.text.toString().trim() // 跳转并传递数据 val intent = Intent(this, DisplayActivity::class.java).apply { putExtra("INPUT_1", input1) putExtra("INPUT_2", input2) putExtra("INPUT_3", input3) putExtra("INPUT_4", input4) putExtra("INPUT_5", input5) putExtra("INPUT_6", input6) putExtra("INPUT_7", input7) putExtra("INPUT_8", input8) putExtra("INPUT_9", input9) } startActivity(intent) } } }
第二步:实现展示页面(第二个Activity)
接下来做展示页面的布局,activity_display.xml里放9个TextView,对应9行内容:
<?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" android:orientation="vertical" android:padding="16dp" android:gap="8dp"> <!-- 9个文本显示框,对应每个输入内容 --> <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp"/> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp"/> <TextView android:id="@+id/textView3" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp"/> <TextView android:id="@+id/textView4" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp"/> <TextView android:id="@+id/textView5" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp"/> <TextView android:id="@+id/textView6" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp"/> <TextView android:id="@+id/textView7" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp"/> <TextView android:id="@+id/textView8" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp"/> <TextView android:id="@+id/textView9" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp"/> </LinearLayout>
然后写展示页面的逻辑代码,同样分Java和Kotlin:
Java版本(DisplayActivity.java)
import android.os.Bundle; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class DisplayActivity extends AppCompatActivity { private TextView textView1, textView2, textView3, textView4, textView5, textView6, textView7, textView8, textView9; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display); // 绑定所有TextView textView1 = findViewById(R.id.textView1); textView2 = findViewById(R.id.textView2); textView3 = findViewById(R.id.textView3); textView4 = findViewById(R.id.textView4); textView5 = findViewById(R.id.textView5); textView6 = findViewById(R.id.textView6); textView7 = findViewById(R.id.textView7); textView8 = findViewById(R.id.textView8); textView9 = findViewById(R.id.textView9); // 获取Intent传递过来的数据,注意key要和输入页面的对应 String input1 = getIntent().getStringExtra("INPUT_1"); String input2 = getIntent().getStringExtra("INPUT_2"); String input3 = getIntent().getStringExtra("INPUT_3"); String input4 = getIntent().getStringExtra("INPUT_4"); String input5 = getIntent().getStringExtra("INPUT_5"); String input6 = getIntent().getStringExtra("INPUT_6"); String input7 = getIntent().getStringExtra("INPUT_7"); String input8 = getIntent().getStringExtra("INPUT_8"); String input9 = getIntent().getStringExtra("INPUT_9"); // 把内容设置到对应的TextView上,空内容可以显示提示 textView1.setText(input1.isEmpty() ? "未输入内容1" : input1); textView2.setText(input2.isEmpty() ? "未输入内容2" : input2); textView3.setText(input3.isEmpty() ? "未输入内容3" : input3); textView4.setText(input4.isEmpty() ? "未输入内容4" : input4); textView5.setText(input5.isEmpty() ? "未输入内容5" : input5); textView6.setText(input6.isEmpty() ? "未输入内容6" : input6); textView7.setText(input7.isEmpty() ? "未输入内容7" : input7); textView8.setText(input8.isEmpty() ? "未输入内容8" : input8); textView9.setText(input9.isEmpty() ? "未输入内容9" : input9); } }
Kotlin版本(DisplayActivity.kt)
import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class DisplayActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_display) // 绑定视图 val textView1 = findViewById<TextView>(R.id.textView1) val textView2 = findViewById<TextView>(R.id.textView2) val textView3 = findViewById<TextView>(R.id.textView3) val textView4 = findViewById<TextView>(R.id.textView4) val textView5 = findViewById<TextView>(R.id.textView5) val textView6 = findViewById<TextView>(R.id.textView6) val textView7 = findViewById<TextView>(R.id.textView7) val textView8 = findViewById<TextView>(R.id.textView8) val textView9 = findViewById<TextView>(R.id.textView9) // 获取传递的数据 val input1 = intent.getStringExtra("INPUT_1").orEmpty() val input2 = intent.getStringExtra("INPUT_2").orEmpty() val input3 = intent.getStringExtra("INPUT_3").orEmpty() val input4 = intent.getStringExtra("INPUT_4").orEmpty() val input5 = intent.getStringExtra("INPUT_5").orEmpty() val input6 = intent.getStringExtra("INPUT_6").orEmpty() val input7 = intent.getStringExtra("INPUT_7").orEmpty() val input8 = intent.getStringExtra("INPUT_8").orEmpty() val input9 = intent.getStringExtra("INPUT_9").orEmpty() // 设置文本,空内容显示提示 textView1.text = if (input1.isEmpty()) "未输入内容1" else input1 textView2.text = if (input2.isEmpty()) "未输入内容2" else input2 textView3.text = if (input3.isEmpty()) "未输入内容3" else input3 textView4.text = if (input4.isEmpty()) "未输入内容4" else input4 textView5.text = if (input5.isEmpty()) "未输入内容5" else input5 textView6.text = if (input6.isEmpty()) "未输入内容6" else input6 textView7.text = if (input7.isEmpty()) "未输入内容7" else input7 textView8.text = if (input8.isEmpty()) "未输入内容8" else input8 textView9.text = if (input9.isEmpty()) "未输入内容9" else input9 } }
最后一步:注册第二个Activity
别忘啦!要在AndroidManifest.xml里把第二个Activity注册进去,不然会崩溃:
<application ...> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 注册DisplayActivity --> <activity android:name=".DisplayActivity"/> </application>
这样一套下来,你的应用就能完美实现需求啦!输入内容点击保存,就能跳转到第二个页面看到每行对应输入的内容~
内容的提问来源于stack exchange,提问作者coetzesh03
相关产品推荐
相关产品推荐

