gpt4 book ai didi

android - 无法在 Intent 中部署数据

转载 作者:行者123 更新时间:2023-11-29 14:46:47 26 4
gpt4 key购买 nike

问题:我在以下代码处设置了断点:

 intent.putExtra(WorkoutRoutinesActivity.EXTRA_WORKOUT_NAME, workoutName);
intent.putExtra(WorkoutRoutinesActivity.EXTRA_WORKOUT_DAYS, workoutDays);

,当我在 Debug模式下运行应用程序时,两者都显示为空。 workoutName 包含一个传递给新 Activity 的简单字符串,而 workoutDays 包含一个字符串数组。

完整代码如下:

public class CreateWorkoutActivity extends Activity {


public final String TAG = this.getClass().getSimpleName();
protected String[] workoutDays = new String[7];
protected String workoutName;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_workout);

Button mNextButton = (Button) findViewById(R.id.next_button1);
CheckBox satBox = (CheckBox) findViewById(R.id.sat_checkbox);
CheckBox sunBox = (CheckBox) findViewById(R.id.sun_checkbox);
CheckBox monBox = (CheckBox) findViewById(R.id.mon_checkbox);
CheckBox tuesBox = (CheckBox) findViewById(R.id.tues_checkbox);
CheckBox wedBox = (CheckBox) findViewById(R.id.wed_checkbox);
CheckBox thursBox = (CheckBox) findViewById(R.id.thurs_checkbox);
CheckBox friBox = (CheckBox) findViewById(R.id.fri_checkbox);

final EditText mWorkoutName = (EditText) findViewById(R.id.workout_name1);
workoutName = mWorkoutName.getText().toString();

Log.i(TAG, workoutName);



if (satBox.isChecked()) {
workoutDays[0] = new String(satBox.getText().toString());
}

if (sunBox.isChecked()) {
workoutDays[1] = new String(sunBox.getText().toString());
}

if (monBox.isChecked()) {
workoutDays[2] = new String(monBox.getText().toString());
}

if (tuesBox.isChecked()) {
workoutDays[3] = new String(tuesBox.getText().toString());
}

if (wedBox.isChecked()) {
workoutDays[4] = wedBox.getText().toString();
}

if (thursBox.isChecked()) {
workoutDays[5] = satBox.getText().toString();
}

if (friBox.isChecked()) {
workoutDays[6] = friBox.getText().toString();
Log.i(TAG, workoutDays[6]);
}




mNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG, workoutDays.toString());
Intent intent = new Intent(CreateWorkoutActivity.this, WorkoutRoutinesActivity.class);
intent.putExtra(WorkoutRoutinesActivity.EXTRA_WORKOUT_NAME, workoutName);
intent.putExtra(WorkoutRoutinesActivity.EXTRA_WORKOUT_DAYS, workoutDays);
Log.i(TAG, workoutDays.toString());
startActivity(intent);

}
});

}

最佳答案

问题不在于 Intent ,而在于您获取 workoutName 的方式(这是空值)。您创建 Activity ,设置 final EditText mWorkoutName = (EditText) findViewById(R.id.workout_name1); 然后立即通过 workoutName = mWorkoutName.getText() 请求输入值。 toString();,但是此时用户还没有输入任何内容。您应该将第二行放在下面的监听器中(因此它仅在用户按下 mNextButton 后才激活。最好在它之后进行一些检查并向用户发送一条消息,告知他们需要填写该字段(如果确实如此)必要的)。

关于android - 无法在 Intent 中部署数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33163574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com