我目前正在尝试在活动之间传递搜索栏的当前值,以便更改另一个活动中的文本大小。但是我这样做有困难。
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的int,值为5,但是我需要变量是动态的。
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);
}
});
非常感谢任何帮助,谢谢。
答案 0 :(得分:1)
创建实例变量。试试这个:
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);
}
});
}
答案 1 :(得分:0)
您的问题在于以下命令:
startIntent.putExtra("com.example.willh.seekbar.something", seekBarValue);
您需要在第一个活动中声明KEY变量,同时在意图中传递值。如下
public static final String KEY = "key";
然后在第一个活动中执行以下操作 -
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输出。