相关疑难解决方法(0)

使用支持库共享操作提供程序时出现空指针异常

以下是我的活动代码.在这里我使用支持库appcompat

   import android.content.Intent;
   import android.os.Bundle;
   import  android.support.v4.view.MenuItemCompat;
   import android.support.v7.app.ActionBarActivity;
   import android.support.v7.widget.ShareActionProvider;
   import android.view.Menu;
   import android.view.MenuItem;

  public class MainActivity extends ActionBarActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    MenuItem item = (MenuItem) menu.findItem(R.id.share_options);
    ShareActionProvider shareAction = (ShareActionProvider) MenuItemCompat
            .getActionProvider(item);
    Intent shareIntent = new Intent(Intent.ACTION_SEND)
            .setAction(Intent.ACTION_SEND)
            .putExtra(Intent.EXTRA_TEXT, "MobiTexter")
            .setType("text/plain");
    shareAction.setShareIntent(shareIntent);
    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

}

以下是我的XML文件,用于菜单选项,即ShareActionProvider Widget …

android android-appcompat shareactionprovider

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

带有 ViewPager 的 Android java.lang.IllegalStateException

我用 ViewPager 制作了一个非常简单的 Android 拼图应用程序,让用户可以浏览一系列拼图。我在生产中看到一个错误,我不知道如何重现或调试:

java.lang.IllegalStateException: 
  at android.support.v4.view.ViewPager.a (ViewPager.java:204)
  at android.support.v4.view.ViewPager.c (ViewPager.java:2)
  at android.support.v4.view.ViewPager.onMeasure (ViewPager.java:207)
  at android.view.View.measure (View.java:22002)
  at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6580)
  at android.widget.FrameLayout.onMeasure (FrameLayout.java:185)
  at android.view.View.measure (View.java:22002)
  at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6580)
  at android.support.v7.internal.widget.ActionBarOverlayLayout.onMeasure (ActionBarOverlayLayout.java:257)
  at android.view.View.measure (View.java:22002)
  at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6580)
  at android.widget.FrameLayout.onMeasure (FrameLayout.java:185)
  at android.view.View.measure (View.java:22002)
  at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6580)
  at android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1514)
  at android.widget.LinearLayout.measureVertical (LinearLayout.java:806)
  at android.widget.LinearLayout.onMeasure (LinearLayout.java:685)
  at android.view.View.measure (View.java:22002)
  at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6580)
  at android.widget.FrameLayout.onMeasure (FrameLayout.java:185)
  at com.android.internal.policy.DecorView.onMeasure (DecorView.java:721)
  at android.view.View.measure (View.java:22002)
  at android.view.ViewRootImpl.performMeasure (ViewRootImpl.java:2414)
  at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2159)
  at android.view.ViewRootImpl.doTraversal …
Run Code Online (Sandbox Code Playgroud)

android illegalstateexception android-viewpager

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

getActionProvider:item未实现SupportMenuItem

我正在尝试ShareActionProvider在片段中的上下文操作栏中使用支持库来实现.我在正常的操作栏(onCreateOptionsMenu())中没有遇到任何问题,但是当我在CAB(MultiModeListener接口中的onCreateActionMode())中尝试它时,我收到错误:

getActionProvider: item does not implement SupportMenuItem; returning null
Run Code Online (Sandbox Code Playgroud)

通过https://cells-source.cs.columbia.edu/plugins/gitiles/platform/frameworks/support/+/30837f1095c803f332f4a1c3f0917c8afdd50156/v4/java/android/support/v4/view/MenuItemCompat.java查看Android源代码,问题似乎是因为我MenuItem不是以下的实例SupportMenuItem:

 public static ActionProvider getActionProvider(MenuItem item) {
    if (item instanceof SupportMenuItem) {
        return ((SupportMenuItem) item).getSupportActionProvider();
    }

    // TODO Wrap the framework ActionProvider and return it
    Log.w(TAG, "getActionProvider: item does not implement SupportMenuItem; returning null");
    return null;
}
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?

清单:

<activity
            android:name=".myactivity_ActionBarActivity"
            android:theme="@style/Theme.AppCompat.Light"
            android:windowSoftInputMode="stateUnchanged">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
Run Code Online (Sandbox Code Playgroud)

活动:

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;

public class myactivity_ActionBarActivity extends …
Run Code Online (Sandbox Code Playgroud)

android android-support-library

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

ShareActionProvider为null

我一直在寻找解决方案3到4天.我尝试过: 使用支持库共享操作提供程序时出现空指针异常, 或者 为什么MenuItemCompat.getActionProvider返回null?和其他一些但我仍然在ShareActionProvider上得到null.我是开发Android应用程序的新手,所以我真的需要一些帮助.

我的xml菜单文件是:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/action_share"
    android:title="@string/action_share"
    app:showAsAction="always"
    android:icon="@android:drawable/ic_menu_share"
    android:actionProviderClass="android.support.v7.widget.ShareActionProvider"/></menu>
Run Code Online (Sandbox Code Playgroud)

我的片段是:

public static class DailyActivityFragment extends Fragment {
    private static final String LOG_TAG = "Dailyshare";
    private ShareActionProvider mShareActionProvider;

    public DailyActivityFragment() {
        setHasOptionsMenu(true);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_detail, container, false);
        return rootView;
    }

    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
        inflater.inflate(R.menu.detailfragment, menu);
        MenuItem item = menu.findItem(R.id.action_share);
        mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
        if (mShareActionProvider != null) {
            mShareActionProvider.setShareIntent(createShareIntent());
        }else{ …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception shareactionprovider

0
推荐指数
2
解决办法
2966
查看次数