2014-11-20 1 views
0

Я создал приложение стекла, в котором я имею CardScrollActivity, который использует CardScroller и перемещаться к другим видам деятельности от него, как показано ниже:Правильный способ начать одного вида деятельности с карты скроллер

public class CardScrollActivity extends Activity { 

private List<CardBuilder> mCards; 
private CardScrollView mCardScrollView; 
private ExampleCardScrollAdapter mAdapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


    mCardScrollView = new CardScrollView(this); 
    mAdapter = new ExampleCardScrollAdapter(); 
    mCardScrollView.setAdapter(mAdapter); 
    mCardScrollView.activate(); 

    setupClickListener(); 


    setContentView(mCardScrollView); 
} 

    private void setupClickListener() { 
    // TODO Auto-generated method stub 
     mCardScrollView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

       log(" onitemclick called " ); 

       if(id == 0) 
       { 
        log(" onitemclick called and select 1 item " ); 

        Intent myIntent = new Intent(getBaseContext(), 
              Main2Activity.class); 
        startActivity(myIntent); 
       } 

       if(id == 1) 
       { 
        log(" onitemclick called and select 2 item " ); 
        Intent myIntent = new Intent(getBaseContext(), 
          CompassActivity.class); 
        startActivity(myIntent); 
       } 

       if(id == 2) 
       { 
        log(" onitemclick called and select 3 item " ); 
        Intent myIntent = new Intent(getBaseContext(), 
          GpsActivity.class); 
        startActivity(myIntent); 
       } 
      } 
     }); 

} 

Теперь проблема в том, что, когда Я выбираю любой элемент из Cardcroller, тогда стек трассировки показывает, что запуск активности несколько раз не один раз, почему он выбирает несколько раз PLZ-справку?

+1

Не могли бы вы добавить 'logcat' на ваш вопрос? – Alain

ответ

1

Честно говоря, без вашей ошибки LogCat, я не могу помочь.

Единственное, что я могу сказать, это то, что, возможно, вы могли бы попробовать завершить свою текущую деятельность, чтобы убедиться, что она не делает ничего странного после запуска новой. Для этого вам нужно добавить флаг FLAG_ACTIVITY_CLEAR_TOP к вашим намерениям, а затем позвонить finish() сразу после запуска намерения.

Для одного намерения вызова, она будет выглядеть следующим образом:

Intent intent = new Intent(this, NewActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
finish(); 

Вот реализация для вас:

if(id == 0) { 
    log(" onitemclick called and select 1 item " ); 
    Intent intent = new Intent(getBaseContext(), Main2Activity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    finish(); 
} else if(id == 1) { 
    log(" onitemclick called and select 2 item " ); 
    Intent intent = new Intent(getBaseContext(), CompassActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    finish(); 
} else if(id == 2) { 
    log(" onitemclick called and select 3 item " ); 
    Intent intent = new Intent(getBaseContext(), GpsActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    finish(); 
}