如何在 Activity 之间传递 Seek Bar 变量?
How to pass Seek Bar variables between activities?
我目前正在尝试在活动之间传递搜索栏的当前值,以便更改另一个 activity 中的文本大小。但是我很难做到这一点。
secondActivityButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent startIntent = new Intent(getApplicationContext(), SecondActivity.class);
startIntent.putExtra("com.example.willh.seekbar.something", seekBarValue);
startActivity(startIntent);
}
});
我可以在活动之间传递静态变量,例如创建一个名为 seekBarValue 且值为 5 的 int,但是我需要该变量是动态的。
slidingBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int seekBarValue = 0;
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
seekBarValue = progress;
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStopTrackingTouch(SeekBar seekBar) {
TextView resultText = (TextView) findViewById(R.id.resultText);
resultText.setText(seekBarValue + "");
resultText.setTextSize(seekBarValue);
}
});
非常感谢任何帮助,谢谢。
您的问题出在以下命令上:
startIntent.putExtra("com.example.willh.seekbar.something", seekBarValue);
您需要在第一个 activity 中声明 KEY 变量,同时在意图中传递值。喜欢如下
public static final String KEY = "key";
然后在您的第一个 activity-
中执行以下操作
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putInt(Key, IntValue);
intent.putExtra(bundle);
startActivity(intent);
在您的 SecondActivity 的 onCreate() 方法中执行以下操作-
int seekBarValue = getIntent().getIntExtra(FirstActivity.KEY,0);
现在该值将位于 seekBarValue 变量中。您现在也可以在您的 seconActivity 中使用它。
如果这不起作用,请告诉我。此外,如果它崩溃,请从 android 监视器发送 logcat 输出。
创建实例变量。试试看:
public class YOURCLASS {
private int seekBarValue;
...(other code)...
slidingBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
seekBarValue = progress;
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStopTrackingTouch(SeekBar seekBar) {
TextView resultText = (TextView) findViewById(R.id.resultText);
resultText.setText(seekBarValue + "");
resultText.setTextSize(seekBarValue);
}
});
secondActivityButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent startIntent = new Intent(getApplicationContext(), SecondActivity.class);
startIntent.putExtra("com.example.willh.seekbar.something", seekBarValue);
startActivity(startIntent);
}
});
}
我目前正在尝试在活动之间传递搜索栏的当前值,以便更改另一个 activity 中的文本大小。但是我很难做到这一点。
secondActivityButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent startIntent = new Intent(getApplicationContext(), SecondActivity.class);
startIntent.putExtra("com.example.willh.seekbar.something", seekBarValue);
startActivity(startIntent);
}
});
我可以在活动之间传递静态变量,例如创建一个名为 seekBarValue 且值为 5 的 int,但是我需要该变量是动态的。
slidingBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int seekBarValue = 0;
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
seekBarValue = progress;
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStopTrackingTouch(SeekBar seekBar) {
TextView resultText = (TextView) findViewById(R.id.resultText);
resultText.setText(seekBarValue + "");
resultText.setTextSize(seekBarValue);
}
});
非常感谢任何帮助,谢谢。
您的问题出在以下命令上:
startIntent.putExtra("com.example.willh.seekbar.something", seekBarValue);
您需要在第一个 activity 中声明 KEY 变量,同时在意图中传递值。喜欢如下
public static final String KEY = "key";
然后在您的第一个 activity-
中执行以下操作Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putInt(Key, IntValue);
intent.putExtra(bundle);
startActivity(intent);
在您的 SecondActivity 的 onCreate() 方法中执行以下操作-
int seekBarValue = getIntent().getIntExtra(FirstActivity.KEY,0);
现在该值将位于 seekBarValue 变量中。您现在也可以在您的 seconActivity 中使用它。
如果这不起作用,请告诉我。此外,如果它崩溃,请从 android 监视器发送 logcat 输出。
创建实例变量。试试看:
public class YOURCLASS {
private int seekBarValue;
...(other code)...
slidingBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
seekBarValue = progress;
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStopTrackingTouch(SeekBar seekBar) {
TextView resultText = (TextView) findViewById(R.id.resultText);
resultText.setText(seekBarValue + "");
resultText.setTextSize(seekBarValue);
}
});
secondActivityButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent startIntent = new Intent(getApplicationContext(), SecondActivity.class);
startIntent.putExtra("com.example.willh.seekbar.something", seekBarValue);
startActivity(startIntent);
}
});
}