我有一个Google Glass应用程序,可以发布一对真实卡片。当我点击这些卡片时,它会将我带入活动的UI。我想要做的是拦截其中一张卡上的点击,而不是将视图更改为活动布局,我想做一些操作(导致一些后台代码运行并更新另一张活卡)
我没有看到任何卡片的点击监听器。有没有办法做到这一点?
编辑:::澄清。这是我可能想要尝试做的一个非常简单的例子。这不起作用,因为LiveCards不接受clickListeners ...
package com.example.exampleglasslivecardselection;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.Menu;
import android.widget.RemoteViews;
import com.google.android.glass.timeline.LiveCard;
import com.google.android.glass.timeline.TimelineManager;
public class MainActivity extends Activity {
LiveCard card1;
LiveCard card2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (card1 == null && card2 == null) {
String cardId = "card1";
TimelineManager tm = TimelineManager.from(this);
// set up card 1 and publish
card1 = tm.getLiveCard(cardId);
RemoteViews views = new RemoteViews(this.getPackageName(),
R.layout.card1_page);
Intent intent = new Intent(this, MainActivity.class);
card1.setAction(PendingIntent.getActivity(this, 0,
intent, 0));
card1.publish();
// set up card 2 and publish
card2 = tm.getLiveCard(cardId);
RemoteViews views2 = new RemoteViews(this.getPackageName(),
R.layout.card2_page);
Intent twoIntent = new Intent(this, MainActivity.class);
card2.setAction(PendingIntent.getActivity(this, 0,
intent, 0));
// set up a click listener or something...(THIS DOESN"T WORK, how would I do this?)
card2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do stuff to card 1...
card1.setViews(someNewVewis);
// TODO Auto-generated method stub
}
}
card2.publish();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
答案 0 :(得分:2)
请注意,活动不必具有与之关联的UI - 您可以将LiveCard
的操作转到以onCreate
方法执行某些代码的活动,调用setContentView
,然后调用finish
结束活动。这可能会为您提供所需的功能。
但是,请考虑这会对用户体验产生的影响。现场直播卡现在有两种交互方式 - 捆绑,可让用户在点击时深入钻取卡片卷轴(这些通常由右上方的“折页”指示卡片);点击卡时会显示选项菜单。至少,您应该提供一个菜单,其中包含一个选项,让用户在点击时将卡从时间轴中移除。