2016-10-10 8 views
0

Здравствуйте, я пытаюсь передать переменную из строки поиска, чтобы установить семя viewflipper в действие antother, но я не могу изменить скорость. Действительно ли я передаю значение строки поиска? Существуют ли специальные методы для вызова переменной из строки поиска? Есть ли какой-либо особый способ настройки намерения с помощью поисковой системы?Почему не меняется скорость просмотра Viewflipper?

public class SlideShow extends AppCompatActivity { 

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

    Intent intent = getIntent(); 
    int progress = intent.getExtras().getInt("progress"); 
    viewFlipper = (ViewFlipper)this.findViewById(R.id.viewFlipper); 
    viewFlipper.setAutoStart(true); 
    viewFlipper.setFlipInterval(progress); 
    viewFlipper.startFlipping(); 
} } 

public class MainActivity extends AppCompatActivity { 

SeekBar seekBar; 
int progress; 
Button button; 


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

    button = (Button)findViewById(R.id.button); 
    seekBar = (SeekBar) findViewById(R.id.seekBar); 
    seekBar.setMax(10); 

    final Intent intent = new Intent(this, SlideShow.class); 
    intent.putExtra("progress", progress); 

    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 

     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 

     } 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
      progress = seekBar.getProgress(); 
     } 
    }); 

    button.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View view){ 
      if (view.getId() == R.id.button){ 
       startActivity(intent); 
      } 
    } 
});} 

ответ

0

Вы не обновляете progress в порядке. Обновление переменной progress не достаточно, вам нужно обновить лишний раз.

@Override 
public void onStopTrackingTouch(SeekBar seekBar) { 
    progress = seekBar.getProgress(); 
    intent.putExtra("progress", progress); 
} 

Это было бы самым быстрым решением.

Во всяком случае, я бы сказал, что это лучше, что вы создаете все намерения у слушателя OnClick (и удалить его из тела OnCreate):

button.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View view){ 
     if (view.getId() == R.id.button){ 
      final Intent intent = new Intent(MainActivity.this, SlideShow.class); 
      intent.putExtra("progress", progress); 
      startActivity(intent); 
     } 
    } 
}); 
+0

Когда я пытаюсь сделать, что это дает мне эту ошибку : Не удается разрешить конструктор Intent (anoymous.android.vew.Vew.OnClickListner, java.lang.Class

+0

Я обновил ответ, 'this', используемый при создании Intent, был указывая на OnClickListener, теперь он указывает на MainActivity. –

+0

Спасибо, что я пытался это получить раньше, и вы много помогли. Теперь, как я могу обновить намерение, если я поместил его в OnClick mehtod? –

Смежные вопросы