我正在阅读facebook Android API 3.0文档,我不明白会话与后台活动有什么关系.在所有的例子中,我都应该扩展"FacebookFragment".好吧,如果我的整个应用程序没有扩展"SherlockFragment",那将是很好的,所以我不认为扩展FacebookFragment是一个选项.
如果我使用SessionLoginExample中的代码,并将我的AppID放在Strings中与facebook完全相同的字符串中,我得到:
错误
10-22 17:04:26.464: E/AndroidRuntime(5491): FATAL EXCEPTION: main
10-22 17:04:26.464: E/AndroidRuntime(5491): java.lang.RuntimeException: Unable to start activity ComponentInfo{nl.specsavers.moodspecs/nl.specsavers.moodspecs.LauncherActivity}: java.lang.NullPointerException: Argument applicationId cannot be null
Run Code Online (Sandbox Code Playgroud)
我正在尝试设置初始检查是否安装了应用程序,以及会话是否存在.
Settings.addLoggingBehavior(LoggingBehaviors.INCLUDE_ACCESS_TOKENS);
Session session = Session.getActiveSession();
if (session == null) {
if (savedInstanceState != null) {
session = Session.restoreSession(this, null, statusCallback, savedInstanceState);
}
if (session == null) {
session = new Session(this);
}
Session.setActiveSession(session);
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
}
}
Run Code Online (Sandbox Code Playgroud)
我需要能够以某种方式将我的App ID放在某个实际上可以正常的地方,但我找不到放在哪里.
我需要知道如果我使用SherlockFragment可以避免扩展FacebookFragment.
TNX.
我正在试图弄清楚新的API是如何工作的,所以我设法理解了这个概念,并设法做了我自己的"hello world",登录到facebook,注销并尝试上传图片.
现在在HelloFacebookSample和SessionLoginSimple中,只需登录到facebook,在HelloFacebookSample中,当您单击"发布照片"时,会出现一个新的登录对话框,因为未设置权限.
这是来自HelloFacebookSample的代码:
private void performPublish(PendingAction action) {
Session session = Session.getActiveSession();
if (session != null) {
pendingAction = action;
if (session.getPermissions().contains("publish_actions")) {
// We can do the action right away.
handlePendingAction();
} else {
// We need to reauthorize, then complete the action when we get called back.
Session.ReauthorizeRequest reauthRequest = new Session.ReauthorizeRequest(this, PERMISSIONS).
setRequestCode(REAUTHORIZE_ACTIVITY).
setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
session.reauthorizeForPublish(reauthRequest);
}
}
}
Run Code Online (Sandbox Code Playgroud)
因为我们没有"publish_actions",我们需要重新授权.
在SimpleSessionLogin中,登录如下所示:
private void onClickLogin() {
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
} …Run Code Online (Sandbox Code Playgroud) 我读过这个:
还有更多的链接,我已经弄清楚什么是StackedBackground以及什么是Background,但我找不到如何从Tabs中删除All Caps并获得常规字体,或者在操作栏标签中更改字体大小.
除此之外,我喜欢改变我的蓝色下划线的颜色,如果我使用9个补丁图形,我得到的情况与上面的链接相似,我的行在文本下面,但不在下面的标签底部,并且原来的蓝线仍然存在,所以我得到两条线.
到目前为止,我有这个,但我已经尝试了文字大小和各种颜色,但没有:
<style name="CustomActivityTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:actionBarTabTextStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">@drawable/grey</item>
<item name="android:backgroundStacked">@drawable/ab_transparent_example</item>
<item name="android:textAllCaps">false</item>
<item name="android:textSize">10dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
编辑:我只是发现我可以使用"android:actionBarTabTextStyle"删除所有大写字母,但它现在需要"MyActionBar"的背景颜色...所以如何在某些层次结构中设置actionBarTabTextStyle和actionBarStyle列表,该文本缩小了尺寸而不是在Caps中,但它不是"MyActionBar"风格的背景.
编辑2:我已经尝试了一些更多9patch图像,它看起来很丑,但我无法摆脱蓝线......

我有小问题,我想用动态菜单解决它:
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
switch(Globals.editMode){
case Globals.MODE_NONE:
getSupportMenuInflater().inflate(R.menu.imagehandlingmain_menu, menu);
break;
case Globals.MODE_MOVE:
getSupportMenuInflater().inflate(R.menu.savecancel_menu, menu);
break;
case Globals.MODE_ROTATE:
getSupportMenuInflater().inflate(R.menu.savecancel_menu, menu);
break;
case Globals.MODE_SCALE:
getSupportMenuInflater().inflate(R.menu.savecancel_menu, menu);
break;
}
//getSupportMenuInflater().inflate(R.menu.imagehandlingmain_menu, menu);
return true;
Run Code Online (Sandbox Code Playgroud)
我有两个菜单,菜单,您可以在其中选择工作模式,而在某些工作模式菜单中应该更改为"取消"和"保存".
因此,您的想法是进入其中一种模式,然后如果您决定不保存您的工作,您可以取消它并返回到先前的状态.
现在,正如我假设onCreateOptionsMenu只被调用一次,那么在需要时我怎么能/应该"重新加载"整个菜单呢?
我在这里阅读了一些文章 如何创建像这样的Android标签(截图)?
后来在评论中有sherlock lib,它为具有Android 2.2的设备带来4.0外观.
我的问题是,我正试图让"丑陋":)旧外观在新设备上工作.
像图像上的东西:

所以我想要Tabs,没有Action栏,只有5个盒子,图片和文本最好来自字符串,因为它需要本地化.
所以,我正在使用,并且在tablayout.xml中我设置了title(来自字符串),并以编程方式将图像添加到我的资源中的某个选项卡.
th.setup();
TabSpec specs = th.newTabSpec("tag1");
//specs.setContent(new Intent(this,MyAppTab.class));
specs.setContent(R.id.tab1);
specs.setIndicator(getResources().getString(R.string.tab_myapp_title), getResources().getDrawable(R.drawable.ic_tab1_active));
Run Code Online (Sandbox Code Playgroud)
现在发生了什么,就是在我的Android 2.2上.电话,它看起来很丑,但有图像,有点我想要的东西,在妻子的4.0上,我看到只有文字的花哨的新标签.
如何在所有Android版本中添加标签图像?
TNX
我正在使用Android 2.2在HTC Desire上测试我的应用程序.它完全按照我喜欢的方式工作.我使用Sherlock软件包在旧设备上具有与较新版本相同的风格.
我的AVD设置为使用最新的Android,它看起来也不错.然后我把它放到三星Galaxy S2上,当我使用相机和图库图像时,它们旋转错误.它接缝三星(相机应用程序,它自己的Android)没有或它确实检查EXIF和我的图像是错误的.纵向图像以横向方式加载,横向图像以纵向方式加载.
TNX.
我正在使用android coverflow,它在大多数设备上运行良好,但似乎在Android 4.0.3中,一旦你来回滑动它就不会将中心图像放回到中心.
它们仍然"卡住"并处于错误的角度.
有没有人有类似的问题?什么可能导致这种行为?
因此,附加图像上的中间图像应居中,而不是按原样成角度.

我在应用程序中有一些通过6个活动的向导.
所以我打电话给:
主要活动 - 呼叫选项1 - 呼叫选项2 - 呼叫选项3 - 呼叫选项4 - 呼叫选项5
现在,在选项5上,我将整个操作保存到数据库,此时我需要返回主活动并销毁Option1,2,3,4和5.
在选项5保存到数据库之前,我需要能够返回,进行更改,转到选项5并保存.
是这样做的正确方法我以某种方式创建了具有以下方法的方法:
private void cleanStack(){
Option1.finish();
Option2.finish();
Option3.finish();
Option4.finish();
Option5.finish();
}
Run Code Online (Sandbox Code Playgroud)
然后开始(或恢复)主要活动?
TNX
我是插件和WP开发的新手,所以我需要一些帮助.
我正在尝试做的是插件,它将使用/重用媒体文件夹中的某些图像,并按照我喜欢的方式在某个页面中显示它们,或者在某个页面中使用短代码.(所以应该在posts\pages和sidebar小部件上工作).
它应该在许多页面上多次使用.
我决定在WP数据库中创建自己的表,即使我在帖子上看到它可能不需要:使用OOP进行WordPress插件开发
我在几个领域挣扎.首先我遇到问题,找到合适的解释如何创建可以多次使用的小部件.好的,我已经解决了这个问题:
class FeatDispWidget extends WP_Widget {...}
Run Code Online (Sandbox Code Playgroud)
示例,它真的有效,我可以有多个实例和数据保存wp_options.
现在,我正在尝试使用$ wpdb.从所有可能的例子中我看到我必须使用全局$ wpdb或包含一些php文件,或者用我自己的DB类扩展wpdb,但是在OOP方法中最好/正确的方法是什么?
这是我的代码,构造函数的一部分,并尝试调用db函数,它始终给我错误.
class FeatDispWidget extends WP_Widget {
private $featdisplayer_table;
$featdisplayer_table = $wpdb->prefix . 'featdisplayer';
/**
* Widget setup.
*/
function FeatDispWidget() {
/* Widget settings. */
$widget_ops = array( 'classname' => 'featdisp', 'description' => __('Sexy Feature Displayer.', 'featdisp') );
/* Widget control settings. */
$control_ops = array( 'width' => 300, 'height' => 350, 'id_base' => 'featdisp-widget' );
/* Create the widget. */
$this->WP_Widget( 'featdisp-widget', __('Feature Displayer …Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的 CSV,它有“null”作为值,并且它有一个空单元格作为值。
所以我的行看起来像这样:
null,0,0,0,1,,,,0,0,0,null
Run Code Online (Sandbox Code Playgroud)
我除了读取和重写文件之外什么也没做:
f = pd.read_csv(input_file,sep=',', quotechar='"', engine='python', converters={i: str for i in range(0, 155)})
f.to_csv(output_file, sep=',', escapechar=' ', quotechar='"', quoting=csv.QUOTE_MINIMAL, index=False)
Run Code Online (Sandbox Code Playgroud)
上面是技术上“重命名”一个文件,但这是为了证明我得到了整个文件的相同值,稍后我将修剪某些列(我已经这样做了,但发现数据是错误的)。
那么,如何保留“null”和“”而不读取每一行/列,并创建一个检查每个单元格的函数?
这可能吗?
我尝试了 na_rep="null",但随后所有 '' 都转换为 'null',或者如果我删除它们,则会丢失我的 'null' 值。
我正在我的主要活动中创建操作栏菜单:
public boolean onCreateOptionsMenu(Menu menu) {
// Used to put dark icons on light action bar
SubMenu sub = menu.addSubMenu(null);
sub.add(0, R.style.Theme_Sherlock, 0, "Default");
sub.add(0, R.style.Theme_Sherlock_Light, 0, "Light");
sub.add(0, R.style.Theme_Sherlock_Light_DarkActionBar, 0,
"Light (Dark Action Bar)");
MenuItem ShareButton = sub.getItem();
ShareButton.setIcon(R.drawable.ic_action_overflow);
ShareButton.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS
| MenuItem.SHOW_AS_ACTION_WITH_TEXT);
return true;
}
Run Code Online (Sandbox Code Playgroud)
然后在我的片段活动中,我尝试更改第二个片段的菜单:
first i do this:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
Run Code Online (Sandbox Code Playgroud)
我这样做:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO Auto-generated method stub
//final MenuInflater inflater2 = getMenuInflater();
//inflater.inflate(R.menu.historymenu, …Run Code Online (Sandbox Code Playgroud) 我正在使用FB API 3.0 for Android,并根据Session I的示例使用
Request request = Request.newUploadPhotoRequest(Session.getActiveSession(), image, new Request.Callback();
Run Code Online (Sandbox Code Playgroud)
上传图片 我需要为此图像添加一些默认文本,但我无法弄清楚它放在哪里.
在旧API中,发送了一组参数:
params.putByteArray("picture", imgData);
params.putString(Facebook.TOKEN, accessToken);
params.putString("caption", MyGlobals.INSTANCE.activeSetting.f_name);
Run Code Online (Sandbox Code Playgroud)
向Request for newUploadPhotoRequest添加文本的正确方法是什么?
TNX.
我遇到了FB API的问题.
星期五早上,我已经完成了设置,它工作正常,我可以在我的2个不同的设备上安装它,它同时适用于两者.
星期天,当我想向我的朋友展示我的应用程序时,与安装了FB应用程序的设备连接到Facebook崩溃,今天我第一次使用API 3.0,我看到我的应用程序配置错误,无法登录Facebook.
直到今天我才触摸代码,今天我唯一改变的是调用我发布带有标题的图像,所以我根本没有触摸登录部分:
if (MyGlobals.INSTANCE.isOnline(getSherlockActivity())) {
if (txt.getTag() == faceLoggedIn) {
if (session.isOpened()) {
Log.w("ss", "Session Allready Open");
onClickLogout();
updateSocialView(txt, img);
// txt.setText("Log To Facebook");
// txt.setTag(faceLoggedOut);
// img.setImageResource(R.drawable.facebook_icon_gray);
// MyGlobals.INSTANCE.f_socialsSet = false;
}
} else if (txt.getTag() == faceLoggedOut) {
if (!session.isOpened() && !session.isClosed()) {
Log.w("Session is not opend", "Session is not closed");
session.openForRead(new Session.OpenRequest(getActivity()).setCallback(MyGlobals.INSTANCE.statusCallback));
} else {
Session.openActiveSession(getActivity(), true, MyGlobals.INSTANCE.statusCallback);
Log.w("Open Active Session", "Status Callback");
updateSocialView(txt, img);
}
updateSocialView(txt, img);
// txt.setText("Log To Facebook");
// …Run Code Online (Sandbox Code Playgroud)