Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从卡片滚动器启动单个活动的正确方法_Java_Android_Google Glass_Google Gdk - Fatal编程技术网

Java 从卡片滚动器启动单个活动的正确方法

Java 从卡片滚动器启动单个活动的正确方法,java,android,google-glass,google-gdk,Java,Android,Google Glass,Google Gdk,我创建了一个glass应用程序,其中我有CardScroller活动,使用CardScroller并从中导航到其他活动,如下所示: public class CardScrollActivity extends Activity { private List<CardBuilder> mCards; private CardScrollView mCardScrollView; private ExampleCardScrollAdapter mAdapter; @Overrid

我创建了一个glass应用程序,其中我有CardScroller活动,使用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);
              }
          }
      });

}
公共类CardScrollActivity扩展活动{
私有列表mCards;
私有卡滚动视图mCardScrollView;
私有示例CardScrollAdapter mAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mCardScrollView=新的CardScrollView(此);
mAdapter=新示例CardScrollAdapter();
setAdapter(mAdapter);
mCardScrollView.activate();
设置ClickListener();
setContentView(mCardScrollView);
}
私有void setupClickListener(){
//TODO自动生成的方法存根
mCardScrollView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
日志(“称为McClick”);
如果(id==0)
{
记录(“单击调用并选择1项”);
Intent myIntent=新的Intent(getBaseContext(),
Main2Activity.class);
星触觉(myIntent);
}
如果(id==1)
{
记录(“单击调用并选择2项”);
Intent myIntent=新的Intent(getBaseContext(),
CompassActivity.class);
星触觉(myIntent);
}
如果(id==2)
{
记录(“单击调用并选择3项”);
Intent myIntent=新的Intent(getBaseContext(),
GpsActivity.class);
星触觉(myIntent);
}
}
});
}

现在的问题是,当我从Cardscroller中选择任何项目时,stack trace会显示多次而不是一次启动活动,为什么它会选择多次plz帮助?

老实说,如果您不提供LogCat错误,我也帮不上什么忙

我唯一能说的是,也许你可以尝试完成你当前的活动,以确保在你启动一个新活动后它不会做任何奇怪的事情。为此,你需要在你的意图中添加标志
flag\u activity\u CLEAR\u 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(); 
}

你能把
logcat
添加到你的问题中吗?