小编gcl*_*cl1的帖子

从父Activity调用Fragment方法

我在Android Fragments Dev Guide中看到,"活动可以通过使用findFragmentById()或从FragmentManager获取对片段的引用来调用片段中的方法findFragmentByTag()".

下面的示例显示了如何获取片段引用,但不显示如何调用片段中的特定方法.

任何人都可以举例说明如何做到这一点?我想从父Activity调用片段中的特定方法.谢谢.

android android-fragments

113
推荐指数
6
解决办法
15万
查看次数

如何将IntentService的结果返回到Activity中?

我正在使用IntentService通过JSON处理与服务器的网络通信.JSON /服务器部分工作正常,但我无法将结果返回到需要的地方.以下代码显示了我如何从onClick()内部启动intent服务,然后让服务更新一个全局变量以将结果传递回主活动.

public class GXActivity extends Activity {

    private static final String TAG = "GXActivity";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // === called when the activity is first created

        Log.i(TAG, "GXActivity Created");

        super.onCreate(savedInstanceState);
        setContentView(R.layout.start);

        View.OnClickListener handler = new View.OnClickListener() {
            public void onClick(View v) {

                // === set up an application context to hold a global variable
                // === called user, to contain results from the intent service
                GXApp appState = ((GXApp) getApplicationContext());
                User user = new User(-1); // …
Run Code Online (Sandbox Code Playgroud)

android android-intent

41
推荐指数
3
解决办法
3万
查看次数

ListFragment下面的固定且始终可见的页脚

我正在尝试将一个固定且始终可见的页脚附加到ListFragment的底部.

我现在这样做:

@Override public void onActivityCreated(Bundle savedInstanceState) {

    // ...

    adapter = new MyAdapter(getActivity(), R.layout.list, dataList);

    ListView list = getListView();
    View footer = ((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_add, null, false);

    list.addFooterView(footer);
    setListAdapter(adapter);
}
Run Code Online (Sandbox Code Playgroud)

虽然这段代码确实在列表的底部生成了一个视图,但它并没有真正做到我想要的:

首先,我需要页脚固定,即在屏幕上可见,无论列表的滚动位置如何.使用此解决方案,只有当屏幕滚动到列表底部时,才会显示页脚.

其次,即使列表为EMPTY,我也需要显示页脚.在此解决方案中,当列表为空时,页脚不可见.

固定页脚(在我的情况下,按钮)总是出现在ListFragment或ListActivity下面的最佳方法是什么?

谢谢!

android android-listview android-listfragment

14
推荐指数
1
解决办法
1万
查看次数

Android IAB:"刷新库存时出错(查询商品价格)"开发人员错误

我一直在app app v3中设置Android,使用IABHelper该类,并遵循Google提供的示例代码.我主要通过购买(带有签名的apk和真实的信用卡收费).

但是,在今天的测试过程中,我开始QueryInventoryFinishedListenerqueryInventoryAsync()方法中得到一个新的错误:

IABResult message: "Error refreshing inventory (querying prices of items)"
IABResult response: 5:Developer Error
Run Code Online (Sandbox Code Playgroud)

奇怪的是#1是在onIabSetupFinished()回调返回之后发生的(使用习惯的"Hooray"消息).奇怪的是,我可以随后成功处理应用内购买(使用该launchPurchaseFlow()方法).

我在这里发现了一个补丁,解决了我遇到的相同症状,但它对我没有用.

我尝试过使用不同的设备,使用不同的Gmail帐户,并从头开始构建新产品.我甚至在我的应用程序的早期版本上运行正确的错误(什么?!).

我的问题是:即使IABHelper确认设置成功后,为什么我不能查询产品库存?什么可能导致此错误,我该如何解决?

感谢您的任何见解.

UPDATE

通过放弃我正在测试的帐户并切换到新帐户,我能够使库存查询事务再次起作用.没有代码更改.

我的初步结论是,我正在使用的用户帐户(?)中出现了损坏.在测试期间,我通过大量购买不同的应用程序内产品非常努力 - 但我仍然需要了解发生了什么,并确保我的任何用户都不会遇到这种情况.

如果您对此有任何经验,请告诉我.谢谢!

android google-play

14
推荐指数
2
解决办法
2万
查看次数

在Android上推送通知:Google GCM与Amazon SNS?

我的Android应用程序需要简单的推送通知才能获知服务器上新数据的外观.Android提供的Google Cloud Messaging(GCM)似乎很合适.

但是,运行速度低于Android 4.0.4的设备需要在手机上显示一个Google帐户(截至2012年10月1日的Google平台统计信息,目前大约有75%的Android手机).要求用户在不相关的应用程序活动中设置Google帐户似乎不是一个好的体验.

是否有任何建议可以在Android平台上使用更通用的推送机制?例如,Amazon SNS的优点和缺点是什么?还有其他候选人?

android push-notification amazon-sns android-c2dm google-cloud-messaging

12
推荐指数
1
解决办法
1万
查看次数

如何在datepicker中更改文本大小?

datepicker中的默认文本大小对我的应用来说太大了.我已经看到了一种建议在这里改变它的方法,但是为了嵌套在datepicker类中的textviews而钓鱼似乎很笨拙且容易出错.

有更好/更清洁的方法吗?

android android-widget android-datepicker android-layout

11
推荐指数
3
解决办法
1万
查看次数

无法找到R.xml.preferences?

我正在尝试为Android应用设置一些简单的首选项,但无法解决此错误:"xml无法解析或不是字段." 我已经清理,刷新,重启日食,并跳过跳汰机 - 但我不能动摇错误.我究竟做错了什么?

preferences.xml文件:

<?xml version="1.0" encoding="utf-8"?>

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory
        android:title="Dev options">

        <CheckBoxPreference
            android:key="devtools"
            android:title="Enable clearing user"
            android:summary="Enable clearing user" />

    </PreferenceCategory>

</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

java类文件:

package com.myapp.prototype;

import android.os.Bundle;
import android.preference.PreferenceFragment;

public class GCPreferencesActivity extends PreferenceFragment {

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

        // Load preferences from XML resource
        addPreferencesFromResource(R.xml.preferences);    // error on this line ??
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

android android-layout

10
推荐指数
1
解决办法
2万
查看次数

Actionbar Sherlock:设置和隐藏标题栏

我是ActionBarSherlock的新手,我有两个问题:

首先,我只想设置操作栏的标题,但是当我这样称它时它不起作用:

final ActionBar actionBar = (ActionBar) findViewById(R.id.actionBar);
actionBar.setTitle("test title");
Run Code Online (Sandbox Code Playgroud)

相应的xml对象如下所示:

<com.myapp.prototype.ActionBar
    android:id="@+id/actionBar2"
    android:layout_width="fill_parent"
    android:layout_height="45dip" 
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" />
Run Code Online (Sandbox Code Playgroud)

(这是以github示例为模型的:https://github.com/johannilsson/android-actionbar/blob/master/actionbarexample/src/com/markupartist/android/actionbar/example/HomeActivity.java).在网络上的其他地方,我看到了对getSupportActionBar()的引用,但我不清楚如何或在何处调用它.

其次,在另一个地方,我只想完全隐藏Activity的标题栏.我试图通过调用:

    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
Run Code Online (Sandbox Code Playgroud)

但我甚至无法编译.我得到的错误是:

"The method setDisplayShowTitleEnabled(boolean) is undefined for the type
 ActionBar."
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我猜Actionbar Sherlock覆盖都涉及到这个问题.有任何建议如何使这项工作?

非常感谢.

android actionbarsherlock android-actionbar

10
推荐指数
2
解决办法
2万
查看次数

如何从PreferenceScreen上的文本条目打开对话框?

在我的Android应用程序中,如果用户在PreferenceScreen中选择看起来像纯文本的内容,我想显示一个Dialog.我已经看过如何从首选项屏幕打开AlertDialog?,但该解决方案从CheckBoxPreference启动.

在我的情况下,我想从看起来像TextView(或者我认为它可能是一个按钮)的东西启动,然后它将导致我已经拥有的"关于"对话框.有什么建议怎么做?谢谢.

android android-preferences android-dialog

9
推荐指数
1
解决办法
4657
查看次数

无法对非静态方法进行静态引用(Android getApplicationContext())

我已经在我的Android应用程序的各个活动中存储了一个全局变量,使用了Soonil所解释的android.app.Application的子类(如何在Android中声明全局变量?).

方法如下:

class MyApp extends Application {

    private String myState;

    public String getState(){
    return myState;
    }
        public void setState(String s){
        myState = s;
    }
}

class Blah extends Activity {

    @Override
    public void onCreate(Bundle b){
    ...
    MyApp appState = ((MyApp)getApplicationContext());
    String state = appState.getState();
    ...
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,这种方法适用于从我的任何活动中访问全局变量.但是今天使用相同的方法,我得到以下错误:

Cannot make a static reference to the non-static method getApplicationContext()
from the type ContextWrapper
Run Code Online (Sandbox Code Playgroud)

与之前的关键区别在于新的Activity实际上是一个片段(SherlockFragmentActivity,确切地说).

任何想法为什么我不能像以前一样访问appState,并且有一个很好的解决方法吗?

非常感谢.


编辑:很好的捕获,马特B.事实证明我实际上调用的地方getApplicationContext()在另一个类中.这是调用点:

public class MyActivity extends SherlockFragmentActivity {
    public static class AccountListFragment extends SherlockListFragment …
Run Code Online (Sandbox Code Playgroud)

java static android android-context android-fragments

7
推荐指数
1
解决办法
2万
查看次数