相关疑难解决方法(0)

我怎么知道Bundle中给出的数据?

我有一点时间通过Intent/ Bundles 搞清楚我的方法会有什么数据.我已经尝试添加断点来检查数据,但我没有看到任何东西.也许是因为Parcelable我无法在Eclipse中手动读取它.

例如,a onActivityResult(int requestCode, int resultCode, Intent data)表示a Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI).我如何知道可用的数据?请注意,我不是要求提供哪些数据,但我是如何理解的,所以我可以将相同的想法应用于任何Bundle/ Intent来自Android框架?也许这看起来像文档一样简单,但我没有看到完整的数据列表,我在Eclipse中看不到它.所以我迷路了.

android bundle android-intent

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

如何在android中启动"添加联系人"活动

你能告诉我如何在android中启动Add Contact'活动吗?谢谢.

android

36
推荐指数
7
解决办法
4万
查看次数

如何处理Android中已弃用的类以保持兼容性

我正在重新开始研究我之前工作的应用程序,当时我已经围绕Android 2.2 Froyo构建了所有内容.

我已经更新了我的SDK以获取最新的API,并注意到我使用的ClipboardManager功能已被弃用.我更新了代码以使用较新的ClipData模型并在我的Froyo手机上试用了它,当然,我在新代码中得到了一个N​​oClassDefFoundError.

我已经浏览了一下,并没有找到任何关于保持向后兼容性的一般策略的真实讨论.

我不完全确定我应该如何处理这个以及API不同的其他情况,因为我希望所有版本的用户都能够使用我的应用程序.

我应该按如下方式进行检查吗?

if(version == old){
   use old API;
} else {
   use new API;
}
Run Code Online (Sandbox Code Playgroud)

如果是这样,我已经弃用了我的类中的代码,Eclipse将永远发出警告.

另一方面,我可以构建一个旧版本的API,并希望新版本可以正常处理它.但是当有更好的替代方案时,我冒着构建有缺陷或低性能代码的风险.

处理这个问题的最佳方法是什么?

compatibility android backwards-compatibility deprecated

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

在活动中初始化加载程序

我目前正在尝试学习如何使用Loaders,并且在我的活动中无法启动Loader.

import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;

public class ASwitchActivity extends Activity implements 
             LoaderManager.LoaderCallbacks<SampleLoader.SampleLoaderResult> {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        getLoaderManager().initLoader(0, null, this);
    }

    public Loader<SampleLoader.SampleLoaderResult> onCreateLoader(int id, Bundle args) {
      return new SampleLoader(getBaseContext(), account, "dog");
}

  public void onLoadFinished(Loader<SampleLoader.SampleLoaderResult> loader, SampleLoader.SampleLoaderResult out)
  {
      TextView t=(TextView)findViewById(R.id.testTV);
      t.setText("yay");
  }

  public void onLoaderReset(Loader<SampleLoader.SampleLoaderResult> loader){

  }
}   
Run Code Online (Sandbox Code Playgroud)

但是Eclipse给出了一个错误说明:

LoaderManager类型中的方法initLoader(int,Bundle,LoaderManager.LoaderCallbacks)不适用于参数(int,null,ActivitySwitchActivity)

任何人都可以帮我解决问题吗?

android android-loadermanager

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

如何使用Android的联系人对话框选择电话号码

我正在使用旧的Contacts API来选择带有电话号码的联系人.我想使用较新的ContactsContracts API.我想要...

  1. ...显示所有具有电话号码的联系人的对话框.
  2. ...用户选择联系人和他们的电话号码之一.
  3. ...访问所选的电话号码.

ContactsContracts非常复杂.我找到了许多例子,但没有一个符合我的需求.我不想选择联系人然后查询联系人的详细信息,因为这会给我一个他们的电话号码列表.我需要用户选择其中一个联系人的电话号码.我不想编写自己的对话框来显示联系人或让用户选择一个电话号码.有什么简单的方法可以得到我想要的东西吗?

这是我正在使用的旧API代码:

static public final int CONTACT = 0;
...
Intent intent = new Intent(Intent.ACTION_PICK, Contacts.Phones.CONTENT_URI);
startActivityForResult(intent, CONTACT);
...
public void onActivityResult (int requestCode, int resultCode, Intent intent) {
  if (resultCode != Activity.RESULT_OK || requestCode != CONTACT) return;
  Cursor c = managedQuery(intent.getData(), null, null, null, null);
  if (c.moveToFirst()) {
     String phone = c.getString(c.getColumnIndexOrThrow(Contacts.Phones.NUMBER));
     // yay
  }
}      
Run Code Online (Sandbox Code Playgroud)

android contacts

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

在Android应用程序中获取联系人

我正在关注这些链接以获取我的应用程序中的联系人

如何调用Android联系人列表?

http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/

我可以在手机上显示联系人列表

-

  1. 我想在每个联系人处添加一个复选框,以便用户可以选择多个联系人,通过单击完成按钮,他应该能够获得他选择的所有联系人

  2. 另外,我想获取联系人姓名以及联系电话号码,请参阅我的代码:

    if (resultCode == Activity.RESULT_OK) {
                    Uri contactData = data.getData();
                    Cursor c = managedQuery(contactData, null, null, null, null);
                    if (c.moveToFirst()) {
                        String name = c.getString(c
                                .getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
                        String number = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                        Log.v("name", name +" "+number);
                        // TODO Whatever you want to do with the selected contact
                        // name.
                    }
                }

在log cat上它显示输出为:

01-09 12:46:41.688: V/name(699): Xyz 1
Run Code Online (Sandbox Code Playgroud)

这是联系人的名字是xyz,它至少有一个与之关联的电话号码.请帮助我如何获得与该联系人相关的号码.

编辑:

如果我String number = c.getString(c.getColumnIndexOrThrow(People.NUMBER));在代码中使用this()行,我会得到以下异常:

01-09 13:33:23.008: E/AndroidRuntime(786): FATAL EXCEPTION: main
01-09 13:33:23.008: E/AndroidRuntime(786): java.lang.RuntimeException: …
Run Code Online (Sandbox Code Playgroud)

android android-contacts

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

如何在Listview中按字母顺序显示联系人

我有一个自定义列表视图,我需要以字母顺序显示联系人,你可以提供示例代码,我该如何实现这一目标?

android alphabetical

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

无法恢复活动错误

我的活动包含此代码以获取SD卡上的所有图像:

String[] projection = {MediaStore.Images.Media._ID,
                       MediaStore.Images.Media.DATA,
                       MediaStore.Images.ImageColumns.DATA};  
Cursor cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                             projection, null, null,
                             MediaStore.Images.Media._ID); 
int count = cursor.getCount();
int image_path_index = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
int i;
for(i = 0; i < count; i++) {
    cursor.moveToPosition(i);
    String p = cursor.getString(image_path_index);
    fd.addToPhonePhoto(p);
}
cursor.close();
Run Code Online (Sandbox Code Playgroud)

活动恢复时发生的事件:

03-14 14:06:48.380:E/AndroidRuntime(20793):java.lang.RuntimeException:无法恢复活动{}:java.lang.RuntimeException:无法恢复活动{}:android.database.StaleDataException:Attempted to关闭后访问游标.

它只发生在Android 4.0上.如果在Android 2.x或3.x上,它可以正常工作.但是,如果我更改了在"开发者选项"中选择"不保留活动"选项的系统设置.错误未显示.

我想修改我的代码以避免此错误而不更改系统设置.我该怎么办?

android cursor android-4.0-ice-cream-sandwich

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

如何从android中的联系人姓名中获取联系人号码

我有一个联系人姓名,想要他的电话号码.如何在Android中获取相应姓名的联系电话?

android

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

ActivityNotFoundException试图加载Contacts ContentProvider?

这很奇怪.我在某些设备上看到此崩溃报告:

android.content.ActivityNotFoundException:
   No Activity found to handle Intent {
     act=android.intent.action.PICK dat=content://com.android.contacts/contacts }
Run Code Online (Sandbox Code Playgroud)

产生此错误的意图是:

Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI); // pre-Eclair
Run Code Online (Sandbox Code Playgroud)

要么:

Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); // post-Eclair
Run Code Online (Sandbox Code Playgroud)

该设备只是报告为"Droid",但我不知道操作系统版本.

android android-intent

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