小编Zie*_*iem的帖子

如何才能让我的应用仅针对某些网址出现在意图选择器中?

我正在开发一个可以从某些网页中提取信息的应用程序.我们的想法是,当用户位于浏览器中的特定网址路径中并按下共享按钮时,我的应用将显示在接收方应用列表中.

通过将其添加到清单中,我可以轻松地做到这一点:

<intent-filter android:label="@string/app_name" >
    <action android:name="android.intent.action.SEND" />
    <data android:mimeType="text/plain" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

但是,这将使我的应用程序出现在所有网址的列表中,也是所有那些无关的地方.相反,我希望应用程序只在这些网址中出现在选择器中:

www.example.com/foo/bla.html

www.example.com/foo/bar/blabla.html

但不是从这些:

www.example.com

www.foobar.com

等等.只能在某个主机上的某个路径内.另请注意,当用户点击符合条件的链接时,我不希望启动我的应用.它只应从共享菜单中调用.

所以我的问题是:如何限制我的应用程序出现在意图中仅选择某些网址?

android android-intent

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

图标选择器不使用PagerSlidingTabStrips

我只PagerSlidingTabStrips与我融为一体Icons.但我selector在图标上没有合作PagerSlidingTabStrips.

XML

<PagerSlidingTabStrip
    android:id="@+id/pager_sliding_tab_strip"
    android:layout_width="fill_parent"
    android:layout_height="45dip"
    android:background="@color/white"
    app:pstsDividerColor="#FFFFA500"
    app:pstsIndicatorColor="#FFFFA500"
    app:pstsTabPaddingLeftRight="14dip"
    app:pstsUnderlineColor="#FFFFA500" />
Run Code Online (Sandbox Code Playgroud)

添加implements IconTabProvider到我的ViewPager工作完美.

public class ViewPagerAdapter extends FragmentPagerAdapter implements IconTabProvider {
    final int PAGE_COUNT = 3;
    private final int[] ICONS = { R.drawable.tab_icon_zname_contacts_selector, R.drawable.tab_icon_zname_friends_selector, 
        R.drawable.tab_icon_zname_call_log_selector };

    @Override
    public int getPageIconResId(int position) {
        return ICONS[position];
    }
}
Run Code Online (Sandbox Code Playgroud)

iconSelector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/tab_icon_zname_call_log_selected" android:state_selected="true"/>
    <item android:drawable="@drawable/tab_icon_zname_call_log" android:state_selected="false"/>

</selector>
Run Code Online (Sandbox Code Playgroud)

如何使图标选择器工作PagerSlidingTabStrips?当选择该选项卡时,我想要带有橙色的图标,但无论如何它都会返回灰色.

结果我得到了

android pagerslidingtabstrip

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

从片段在我的工具栏上设置字幕

我在片段中设置工具栏中的子标题时遇到了一些麻烦.我一直在setSubTitle得到一个空指针异常.

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    getActivity().getActionBar().setSubtitle("About"); // NULL POINTER EXCEPTION here
}
Run Code Online (Sandbox Code Playgroud)

将工具栏添加到主机活动:

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

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    if (toolbar != null) {
        Log.w("Rakshak", "Toolbar is not null");

        setSupportActionBar(toolbar);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的style.xml

 <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">#1A7E99</item>
    <item name="colorPrimaryDark">#16657A</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>        
</style>
Run Code Online (Sandbox Code Playgroud)

这是Logcat:

11-12 11:24:15.580: E/AndroidRuntime(22183): FATAL EXCEPTION: main
11-12 11:24:15.580: E/AndroidRuntime(22183): java.lang.NullPointerException
11-12 11:24:15.580: E/AndroidRuntime(22183):    at com.driverdesignstudio.drvr.About.onActivityCreated(About.java:63)
11-12 11:24:15.580: E/AndroidRuntime(22183):    at android.app.Fragment.performActivityCreated(Fragment.java:1703)
11-12 11:24:15.580: E/AndroidRuntime(22183):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:903) …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-fragments android-actionbar android-toolbar

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

android.text.format.Time替换需要,因为它已被弃用

我是android新手,我有使用Time对象需要使用的代码.有人可以在不使用Time类的情况下帮助我实现相同的功能.

Time dayTime = new Time();
dayTime.setToNow();

// we start at the day returned by local time. Otherwise this is a mess.
int julianStartDay = Time.getJulianDay(System.currentTimeMillis(), dayTime.gmtoff);

// now we work exclusively in UTC
dayTime = new Time();
long dateTime;

// Cheating to convert this to UTC time, which is what we want anyhow
// this code below is in a for loop
dateTime = dayTime.setJulianDay(julianStartDay + i);
day = getReadableDateString(dateTime);
Run Code Online (Sandbox Code Playgroud)

android

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

使用okHttp3上传动态文件数

如何使用OkHttp v3 管理动态文件数量的上传,我已经使用旧版本的OkHttp实现了compile 'com.squareup.okhttp:okhttp:2.6.0'

类Form中有一些变化,现在对Multipart体进行建模.他们用更强大的FormBody和FormBody.Builder组合替换了不透明的FormEncodingBuilder.同样,他们将MultipartBuilder升级为MultipartBody,MultipartBody.Part和MultipartBody.Builder.

下面的代码是旧版本

final MediaType MEDIA_TYPE = MediaType.parse(AppConstant.arrImages.get(i).getMediaType());

//If you can have multiple file types, set it in ArrayList

MultipartBuilder buildernew = new MultipartBuilder()
        .type(MultipartBuilder.FORM)
        .addFormDataPart("title", title);   //Here you can add the fix number of data.

for (int i = 0; i < AppConstants.arrImages.size(); i++) {  //loop to add dynamic number of files.
    File f = new File(FILE_PATH,TEMP_FILE_NAME + i + ".png");
    if (f.exists()) {
        buildernew.addFormDataPart(TEMP_FILE_NAME + i, TEMP_FILE_NAME + i + FILE_EXTENSION, RequestBody.create(MEDIA_TYPE, f)); …
Run Code Online (Sandbox Code Playgroud)

android file-upload okhttp okhttp3

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

如何从Android支持库25.3.0重新创建FragmentManager#getFragments()行为

我的应用使用FragmentManager#getFragments()方法:

https://developer.android.com/reference/android/support/v4/app/FragmentManager.html#getFragments()

一切都很好但是当我将Android支持库从25.3.0更新到25.4.0时它停止了工作.在25.4.0 getFragments()方法中,不再返回所有片段:

获取当前添加到FragmentManager的所有片段的列表.这可能包括隐藏的内容以及显示的内容.这不包括仅在后栈中的任何片段,或者分离或删除的片段.

先前:

获取当前添加到FragmentManager的所有片段的列表.

getFragments()替换了公共方法内容,并将旧主体移至package-private getActiveFragments()方法.我可以通过反射调用它,但这个解决方案似乎超级hacky.我想知道是否有更好的解决方案.

public List<Fragment> getFragments() {
    if(this.mAdded.isEmpty()) {
        return Collections.EMPTY_LIST;
    } else {
        ArrayList var1 = this.mAdded;
        synchronized(this.mAdded) {
            return (List)this.mAdded.clone();
        }
    }
}

List<Fragment> getActiveFragments() {
    if(this.mActive == null) {
        return null;
    } else {
        int count = this.mActive.size();
        ArrayList fragments = new ArrayList(count);

        for(int i = 0; i < count; ++i) {
            fragments.add(this.mActive.valueAt(i));
        }

        return fragments;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是: 有没有办法从25.3.0版本重新创建FragmentManager#getFragments()行为?

java android android-fragments

10
推荐指数
0
解决办法
267
查看次数

无法使用Smack更改我的用户的状态

我试图设置在线模式,但它不能通过名册.我运行此代码并检查我的localhost服务器,该模式仍然"可用"而不是"请勿打扰".

final Connection connection = new XMPPConnection("xxx.xxx.x.xx");

connection.connect();
connection.login("hieugioi@hieund", "123456");

final Roster roster = connection.getRoster();           
Presence p = roster.getPresence("hieugioi@hieund");
p.setPriority(128);
p.setMode(Mode.dnd);
Run Code Online (Sandbox Code Playgroud)

xmpp smack

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

如何强制PopupMenu重叠锚点?

如何强制PopupMenu重叠锚点?我想重新创建类似于此的东西:

菜单用法

android popupmenu android-recyclerview

9
推荐指数
3
解决办法
8310
查看次数

在警报对话中自定义Android对讲?

我通过Android TalkBack检查了所有默认警报对话框.默认的Android Talkback行为是它在对话框中读取所有内容(不停止).有什么方法可以根据我的需要定制它.例如 :

AlertDialog alertDialog = new AlertDialog.Builder(AlertDialogActivity.this).create();
alertDialog.setTitle("Alert Dialog");
alertDialog.setMessage("This is my alert dialog");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(getApplicationContext(), "You clicked on OK", Toast.LENGTH_SHORT).show();
    }
});

alertDialog.show();
Run Code Online (Sandbox Code Playgroud)

当出现对话框时,它会自动读取"Alert Dialogue.这是我的提醒对话.确定." 但我想控制它,就像它应该只读"警报对话"或"这是我的警报对话"等.

点击"确定"时,它只读"OK",而不是"OK按钮".

android android-alertdialog accessibilityservice talkback

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

Java Math.random期间

我正在研究一个关于随机数的大型学校项目,但我找不到时间段Math.random().我安装了7.0.800.15版本,我正在使用Windows 10计算机.我试过用一个简单的程序来确定句点,它保存了第一个值:

double num = Math.random(); 
Run Code Online (Sandbox Code Playgroud)

在一个数组中,然后循环,直到它再次在一行中找到相同的值,因此一个句点已经过去,但没有结果,周期太长.

所以我的问题是:Math.random()我的版本是什么时期?或者:有没有办法用简单的程序来确定周期?

编辑:拿走了指向有关JavaScript的页面的源代码,它不相关

java random

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