如何为另一个 activity 保存一个整数?
How to save an int for another activity?
我有一个 activity 用户在 EditText
中写入一个数字,然后我应该将其转换为字符串,然后再转换为 int,但我想保存该值因为我要将它用于另一个 activity,这将是一个按钮可以按下的最大次数,但我不知道如何从 EditText
中保存它 activity 到另一个 activity 中的一个整数。
这里第一个activity的EditText
:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/texthome"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:hint="Ejemplo:15"
android:layout_weight="1"
android:textSize="20sp" />
这里把textview转成int:
EditText conttext = (EditText) findViewById ( R.id.texthome );
String maxicont = conttext.getText().toString();
int maxcont = Integer.parseInt(maxicont);
更新:
我收到以下错误:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button buttsave = (Button) findViewById(R.id.buttsave);
buttsave.setOnClickListener(new View.OnClickListener"here" {
public void onClick "here" {
Intent intent = new Intent(getApplicationContext(), GuessOne.class);
intent.putExtra("maxNumberPressed", conttext.getText());
startActivity(intent);
}
});
我在放置 "here" 的地方出现错误,显然它不是代码的一部分。只是看看错误在哪里。
为此您需要使用 Intents。这里回答了类似的问题:
Passing Values To Another Activity
启动另一个 activity 时,打包。
当前activity,尝试:
Intent intent = new Intent(getApplicationContext(), <next activity>.class);
intent.putExtra("maxNumberPressed", editText.getText());
startActivity(intent);
然后在下一个activity你要使用它的地方,把它放在onCreate方法中:
Bundle bundle = this.getIntent().getExtras();
String maxPressed = bundle.getString("maxNumberPressed");
创建一个文本为 'save' 之类的按钮。然后做:
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener{
public void onClick() {
Intent intent = new Intent(getApplicationContext(), <next activity>.class);
intent.putExtra("maxNumberPressed", editText.getText());
startActivity(intent);
}
});
如何将数据从 Activity 传递到另一个可能有很大差异,具体取决于活动的关联方式。
如果您将数据从 parent 传递到 child Activity,您将信息传递给启动新 child Activity 时的 Intent。发送信息的方式如下:
itt = new Intent(this, ChildActivityName.class); // 创建新的意图
itt.putExtra("MAX", maxcont); // 用数据填充 Intent
开始Activity(itt, SOME_NUMBER_IDENTIFYING_THE_PARENT); // 开始 Activity
下面是接收方 child Activity 检索它的方式:
void onCreate(Bundle savedInstanceState) {
...
Intent itt = getIntent(); // Grab the Intent created with this Activity
int maxcont = itt.getIntExtra("MAX", -1); // Retrieve data, default is -1
}
如果您以其他方式传递数据,从 child 到 parent Activity,则使用 startActivityForResult 传递的最简单方法。 parent 使用此命令启动 child activity:
开始ActivityForResult(itt, SOME_NUMBER_IDENTIFYING_THE_PARENT);
Child 然后在退出前将信息传回 parent:
Intent itt = new Intent(); // Create new Intent
itt.putExtra("MAX_RETURN", maxcont); // Add data to the Intent
setResult(RESULT_OK, itt); // Signal to parent valid result
finish(); // End this Activity
一旦child调用finish()
,parent的onActivityResult()
方法将被调用:
protected void onActivityResult(int requestCode, int resultCode, Intent itt) {
maxcont = data.getIntExtra("MAX_RETURN", -1); // defaults to -1
...
}
putExtra 和 getIntExtra 中使用的字符串是关联数据的标识键,它们在 Android 编程中随处使用,超出了本问题的范围。只需确保通过 Intent 的数据发送方和接收方使用完全相同的字符串!
如果您需要在两个都处于活动状态的同级活动之间传递信息,最简单的方法是通过每个 public 中的静态变量 Activity。这是很基本的;这些你应该没有问题。
如果您需要在可能活动或不活动的两个同级活动之间传递信息,那么您需要使用Broadcast/Receiver范式.但我认为这种方法对你所说的来说有点矫枉过正。
我有一个 activity 用户在 EditText
中写入一个数字,然后我应该将其转换为字符串,然后再转换为 int,但我想保存该值因为我要将它用于另一个 activity,这将是一个按钮可以按下的最大次数,但我不知道如何从 EditText
中保存它 activity 到另一个 activity 中的一个整数。
这里第一个activity的EditText
:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/texthome"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:hint="Ejemplo:15"
android:layout_weight="1"
android:textSize="20sp" />
这里把textview转成int:
EditText conttext = (EditText) findViewById ( R.id.texthome );
String maxicont = conttext.getText().toString();
int maxcont = Integer.parseInt(maxicont);
更新: 我收到以下错误:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button buttsave = (Button) findViewById(R.id.buttsave);
buttsave.setOnClickListener(new View.OnClickListener"here" {
public void onClick "here" {
Intent intent = new Intent(getApplicationContext(), GuessOne.class);
intent.putExtra("maxNumberPressed", conttext.getText());
startActivity(intent);
}
});
我在放置 "here" 的地方出现错误,显然它不是代码的一部分。只是看看错误在哪里。
为此您需要使用 Intents。这里回答了类似的问题:
Passing Values To Another Activity
启动另一个 activity 时,打包。
当前activity,尝试:
Intent intent = new Intent(getApplicationContext(), <next activity>.class);
intent.putExtra("maxNumberPressed", editText.getText());
startActivity(intent);
然后在下一个activity你要使用它的地方,把它放在onCreate方法中:
Bundle bundle = this.getIntent().getExtras();
String maxPressed = bundle.getString("maxNumberPressed");
创建一个文本为 'save' 之类的按钮。然后做:
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener{
public void onClick() {
Intent intent = new Intent(getApplicationContext(), <next activity>.class);
intent.putExtra("maxNumberPressed", editText.getText());
startActivity(intent);
}
});
如何将数据从 Activity 传递到另一个可能有很大差异,具体取决于活动的关联方式。
如果您将数据从 parent 传递到 child Activity,您将信息传递给启动新 child Activity 时的 Intent。发送信息的方式如下:
itt = new Intent(this, ChildActivityName.class); // 创建新的意图 itt.putExtra("MAX", maxcont); // 用数据填充 Intent 开始Activity(itt, SOME_NUMBER_IDENTIFYING_THE_PARENT); // 开始 Activity
下面是接收方 child Activity 检索它的方式:
void onCreate(Bundle savedInstanceState) {
...
Intent itt = getIntent(); // Grab the Intent created with this Activity
int maxcont = itt.getIntExtra("MAX", -1); // Retrieve data, default is -1
}
如果您以其他方式传递数据,从 child 到 parent Activity,则使用 startActivityForResult 传递的最简单方法。 parent 使用此命令启动 child activity:
开始ActivityForResult(itt, SOME_NUMBER_IDENTIFYING_THE_PARENT);
Child 然后在退出前将信息传回 parent:
Intent itt = new Intent(); // Create new Intent
itt.putExtra("MAX_RETURN", maxcont); // Add data to the Intent
setResult(RESULT_OK, itt); // Signal to parent valid result
finish(); // End this Activity
一旦child调用finish()
,parent的onActivityResult()
方法将被调用:
protected void onActivityResult(int requestCode, int resultCode, Intent itt) {
maxcont = data.getIntExtra("MAX_RETURN", -1); // defaults to -1
...
}
putExtra 和 getIntExtra 中使用的字符串是关联数据的标识键,它们在 Android 编程中随处使用,超出了本问题的范围。只需确保通过 Intent 的数据发送方和接收方使用完全相同的字符串!
如果您需要在两个都处于活动状态的同级活动之间传递信息,最简单的方法是通过每个 public 中的静态变量 Activity。这是很基本的;这些你应该没有问题。
如果您需要在可能活动或不活动的两个同级活动之间传递信息,那么您需要使用Broadcast/Receiver范式.但我认为这种方法对你所说的来说有点矫枉过正。