Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在运行时更改自定义选项卡操作栏按钮中的额外文本数据_Android_Chrome Custom Tabs - Fatal编程技术网

Android 在运行时更改自定义选项卡操作栏按钮中的额外文本数据

Android 在运行时更改自定义选项卡操作栏按钮中的额外文本数据,android,chrome-custom-tabs,Android,Chrome Custom Tabs,我正在使用chrome自定义选项卡显示各种网站。我在自定义选项卡操作栏中添加了一个共享链接按钮 builder.setActionButton(bitmap,shareLabel,createPendingShareIntent()); 还有我的悬挂功能 private PendingIntent createPendingShareIntent() { Intent actionIntent = new Intent(Intent.ACTION_SEND

我正在使用chrome自定义选项卡显示各种网站。我在自定义选项卡操作栏中添加了一个共享链接按钮

        builder.setActionButton(bitmap,shareLabel,createPendingShareIntent());      
还有我的悬挂功能

 private PendingIntent createPendingShareIntent() {
    Intent actionIntent = new Intent(Intent.ACTION_SEND);
    actionIntent.setType("text/plain");
    actionIntent.putExtra(Intent.EXTRA_TEXT,getResources().getString(R.string.chromeextra));
    return PendingIntent.getActivity(
            getApplicationContext(), 0, actionIntent, 0);
}
现在我想更改Intent.EXTRA_文本,用于共享用户打开的链接


我知道pendingent.FLAG\u UPDATE\u CURRENT,但我不知道如何在这种情况下使用。

经过很长时间,我找到了一个解决方案。 我使用广播接收器完成了这项工作

首先创建一个自定义BroadcastReceiver类来共享链接

ShareBroadcastReceiver.java

public class ShareBroadcastReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    String url = intent.getDataString();
    if (url != null) {
        Intent shareIntent = new Intent(Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(Intent.EXTRA_TEXT,context.getResources().getString(R.string.chromeextra)+ url);

        Intent chooserIntent = Intent.createChooser(shareIntent, "Share url");
        chooserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        context.startActivity(chooserIntent);
    }
}
}

然后在自定义选项卡生成器类中设置菜单项

  String shareLabel = getString(R.string.label_action_share);
Bitmap icon = BitmapFactory.decodeResource(getResources(),
        android.R.drawable.ic_menu_share);

//Create a PendingIntent to your BroadCastReceiver implementation
Intent actionIntent = new Intent(
        this.getApplicationContext(), ShareBroadcastReceiver.class);
PendingIntent pendingIntent = 
        PendingIntent.getBroadcast(getApplicationContext(), 0, actionIntent, 0);            

//Set the pendingIntent as the action to be performed when the button is clicked.            
intentBuilder.setActionButton(icon, shareLabel, pendingIntent);