2015-07-03 66 views
0

我使用一个在线教程,可在http://www.raywenderlich.com/78576/android-tutorial-for-beginners-part-2无法施展android.support.v4.view.MenuItemCompat到android.widget.ShareActionProvider

已顺利迄今发现目前正在学习Android的,但是我现在有一些问题,即使我的代码与教程的代码相匹配,我会得到上面的错误消息(此线程的标题)。

我的进口情况如下...

import android.app.Activity; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.support.v4.view.MenuItemCompat; 
import android.support.v7.app.ActionBarActivity; 
import android.widget.ShareActionProvider; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Button; 

我有以下问题,if语句中......

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    // Inflate the menu. 
    // Adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 

    // Access the Share Item defined in menu XML 
    MenuItem shareItem = menu.findItem(R.id.menu_item_share); 

    // Access the object responsible for 
    // putting together the sharing submenu 
    if (shareItem != null) { 
     mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem); 
    } 

    // Create an Intent to share your content 
    setShareIntent(); 

    return true; 
} 

private void setShareIntent() { 

    if (mShareActionProvider != null) { 

     // create an Intent with the contents of the TextView 
     Intent shareIntent = new Intent(Intent.ACTION_SEND); 
     shareIntent.setType("text/plain"); 
     shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Android Development"); 
     shareIntent.putExtra(Intent.EXTRA_TEXT, mainTextView.getText()); 

     // Make sure the provider knows 
     // it should work with that Intent 
     mShareActionProvider.setShareIntent(shareIntent); 
    } 
} 

我想这可能是由于最近的更新造成了一些代码变得过时了,但我并没有太多的想法,因为我没有经验过android。

感谢您的帮助

回答

1

你需要导入从支持库的ShareActionProvider,就像这样:

import android.support.v7.widget.ShareActionProvider; 

因为要支持较旧的Android版本,并使用支持库实现MenuItemCompat你也如果可用,则需要使用与其交互的其他类的支持版本。使用自动导入时需要注意,如果有选择,请选择支持版本。

+0

谢谢,这整理出来了。好建议。我会在将来注意自动进口! –

相关问题