小编ete*_*att的帖子

从DialogFragment回调片段

问题:如何创建从DialogFragment到另一个Fragment的回调.就我而言,涉及的活动应该完全不知道DialogFragment.

考虑一下我

public class MyFragment extends Fragment implements OnClickListener
Run Code Online (Sandbox Code Playgroud)

然后在某些时候我做到

DialogFragment dialogFrag = MyDialogFragment.newInstance(this);
dialogFrag.show(getFragmentManager, null);
Run Code Online (Sandbox Code Playgroud)

MyDialogFragment的样子

protected OnClickListener listener;
public static DialogFragment newInstance(OnClickListener listener) {
    DialogFragment fragment = new DialogFragment();
    fragment.listener = listener;
    return fragment;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果DialogFragment在其生命周期中暂停和恢复,则无法保证听众会出现.片段中唯一的保证是通过setArguments和getArguments通过Bundle传递的.

如果它应该是监听器,有一种方法可以引用该活动:

public Dialog onCreateDialog(Bundle bundle) {
    OnClickListener listener = (OnClickListener) getActivity();
    ....
    return new AlertDialog.Builder(getActivity())
        ........
        .setAdapter(adapter, listener)
        .create();
}
Run Code Online (Sandbox Code Playgroud)

但我不希望活动监听事件,我需要一个片段.实际上,它可以是任何实现OnClickListener的Java对象.

考虑通过DialogFragment呈现AlertDialog的Fragment的具体示例.它有Yes/No按钮.如何将这些按钮发送回创建它的Fragment?

android callback android-fragments android-dialogfragment

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

如何在Android上访问SMS存储?

初学Android开发者在这里.

我正在尝试创建一个应用程序,它将读取存储在设备上的SMS消息,然后向用户提供有关其习惯的统计信息(例如他们经常发送消息的人,常用词等).

但据我所知,似乎没有办法做到这一点.我在论坛上四处看看,大多数人都在谈论访问收件箱,在那里你可以找到用户没有读过的邮件.那么默认应用程序和第三方(例如Handcent)如何显示相同的文本?他们不保留自己的数据库,因为Handcent将在全新安装时显示所有文本.

tl; dr:如何在Android设备上阅读SMS消息,特别是之前读过的消息.

sms android android-contentprovider

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

filterscript文档在哪里(我该如何使用它)?

当Jelly Bean 4.2在一个月前宣布时,Filterscript也宣布了.它似乎是一种语言,是Renderscript的下标,具有不同的文件扩展名.这就是我对语言的全部了解.

我已经阅读了整个互联网上存在的关于Filterscript的两个段落并创建了一个小.fs文件pragma rs_fp_relaxed,但ADT构建器并没有像普通.rs文件在同一位置那样获取它.

我的ADT是最新的公共版本(21.0.0),对于Filterscript来说似乎太低了. tools.android.com似乎有21.0.1预览版,但在发行说明中没有提到Filterscript(事实上它只是一个bug修复版本).在任何地方都没有文档!

我如何使用Filterscript?它的文件在哪里?

我尝试过的:

https://www.google.com/search?q=filterscript+site:android.com&tbs=li:1

http://developer.android.com/about/versions/android-4.2.html#Renderscript

http://developer.android.com/tools/sdk/eclipse-adt.html#notes

http://tools.android.com/recent/2101preview1

documentation android renderscript

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

有没有办法访问Skype IM日志?

我试着查看C:\ Users [name]\AppData\Roaming\Skype,我发现了一个名为"chatsync"的文件夹,里面有一些神秘文件夹,文件以.dat结尾.我几乎可以肯定这些是聊天记录,但我不知道如何正确打开这些文件(记事本显示乱码与英文单词混合).我不是想做侦察,只是为我女朋友做的一个项目.

更重要的是:如何正确阅读Skype的.dat文件?

logging chat skype

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

Android生命周期处理多少钱?

可以理解这个问题有点主观,但我相信有一个具体的答案.

我有一个非常小的活动,只是在ListActivity中向用户显示一些数据.我使用的数据来自应用程序的SQLite数据库,我发现自己这样做了

public class MainActivity extends ListActivity{
     private DatabaseAdapter dbHelper;
     @Override
     public void onCreate(Bundle b){ 
          dbHelper = new DatabaseAdapter(this);
          super.onCreate(b); 
     }

     @Override
     public void onResume(){
            dbHelper.open();
            fill_data();//a small method that uses dbHelper to setListAdapter
            super.onResume();
       }

     @Override
     public void onPause(){
          dbHelper.close();
          super.onPause();
     }

     private void fill_data(){/*makes use of dbHelper */ }
Run Code Online (Sandbox Code Playgroud)

这只是代码很大程度上不必要吗 我想处理生命周期,因此当MainActivity不在最佳状态时,我可以使用最少量的资源,但与此同时,整个活动可以完成onCreate().

android android-lifecycle

6
推荐指数
1
解决办法
307
查看次数

从NSArray动态生成NSPredicate

我有大量不同的NSObject类型都具有不同的属性,我试图抽象出一个方法,允许我通过简单地传入我希望过滤的NSArray属性来过滤对象的NSArray.我过滤的数字键可能从1到不等.

以下是过滤NSArray的示例

NSArray *filterBy = [NSArray arrayWithObjects:
                       @"ManufacturerID",
                       @"CustomerNumber",nil];
Run Code Online (Sandbox Code Playgroud)

这些键也存在于我正在过滤的NSArray的对象中,所以基本上这需要生成这样的东西:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"%K == %@ AND %K == %@",
                       [filterBy objectAtIndex:0], 
                       [items valueForKey: [filterBy objectAtindex:0],
                       [filterBy objectAtIndex:1], 
                       [items valueForKey: [filterBy objectAtIndex:1]];
Run Code Online (Sandbox Code Playgroud)

这会产生类似的东西: ManufacturerID==18 AND CustomerNumber=='WE543'

是否有可能做到这一点?

nspredicate ios

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

加载.dll以在Visual Studio 2010中使用

在这里完成newb quesiton,但我是C#和Visual Studio 2010的新手.

如何将.dll加载到Visual Studio 2010中,以便我可以使用他们的方法编写C#程序?

更具体地说,我正在尝试使用将通过命令行运行的TweetSharp编写一个Twitter应用程序.

.net dll visual-studio

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

如何在Android SQLite中的列中返回唯一行?

真的我想做的就是说查询,SELECT DISTINCT column FROM table但我无法弄清楚如何在enourmous查询方法中构建它SQLiteDatabase

我只是想在表格中获取所有联系人的姓名.

sqlite android

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

为什么这个C不允许在这种语法中使用 - 运算符和&运算符

我正在尝试做一些相当简单的事情.当然可以使用额外的代码行完成,但从技术上讲,为什么这不起作用?

int foo = 5;
int *bar = &(--foo);
Run Code Online (Sandbox Code Playgroud)

GCC编译告诉我 "invalid lvalue in unary &"

c pointers

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

这段代码的C++是如何工作的?

我有一些奇怪的代码.我一定是闭着眼睛打我的键盘,因为这种类型的东西真的很愚蠢,但奇怪的是,我在程序成功运行后抓住了它.

struct Number{
private:
  unsigned long longNumber;
public:

   Number(unsigned long n)
   {
      longNumber = n;
   }

  unsigned long getReverse()
  {
      /*some magic that returns an unsigned long */
  }

  inline
  unsigned long getLong()
  {
      return longNumber;  
  }
  inline
  static Number add(Number one, Number two)
  {
      return Number(one.getLong() + two.getLong());
  }
};


int main()
{
  scanf("%lu", n);
  Number number = Number(n);
  number = Number::add(number, number.getReverse());
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当然,main()中有更多的东西在进行,而Number有更多的成员和功能,但这是我认为重要的.

如果你查看main,你会看到add()传递一个Number和一个unsigned long,但add()只接受Number和Number.

这里发生了什么?

编辑:上面添加了构造函数

c++

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

是否可以交换结构数组(线性时间)?

我有一个小程序来计算彼此的行星的力量.我的程序有两个结构数组,一个在迭代前保持位置和速度,另一个保持迭代后它们的位置和速度.

在每次迭代结束时,我想将第二个数组中的值移动到第一个数组中,第二个数组可能变为垃圾(但需要指向我稍后可以写入的一些有效内存位置).我以为我可以简单地切换数组,因为数组是指针,但编译器不会让我.

考虑这个例子:

typedef struct { int a; } Foo;

int main()
{
   Foo bar[8], baz[8];

   Foo *temp = baz;
   baz = bar;   //ISO C++ forbids the assignment of arrays
   bar = temp;  //incompatible types in assignment of Foo* to Foo[8]
}
Run Code Online (Sandbox Code Playgroud)

这就是我想做的.它肯定比从1到N的for循环更快.

c++ struct pointers

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