我正在开发一个可以从某些网页中提取信息的应用程序.我们的想法是,当用户位于浏览器中的特定网址路径中并按下共享按钮时,我的应用将显示在接收方应用列表中.
通过将其添加到清单中,我可以轻松地做到这一点:
<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
等等.只能在某个主机上的某个路径内.另请注意,当用户点击符合条件的链接时,我不希望启动我的应用.它只应从共享菜单中调用.
所以我的问题是:如何限制我的应用程序出现在意图中仅选择某些网址?
我只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?当选择该选项卡时,我想要带有橙色的图标,但无论如何它都会返回灰色.

我在片段中设置工具栏中的子标题时遇到了一些麻烦.我一直在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
我是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) 如何使用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) 我的应用使用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()行为?
我试图设置在线模式,但它不能通过名册.我运行此代码并检查我的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) 如何强制PopupMenu重叠锚点?我想重新创建类似于此的东西:

我通过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按钮".
我正在研究一个关于随机数的大型学校项目,但我找不到时间段Math.random().我安装了7.0.800.15版本,我正在使用Windows 10计算机.我试过用一个简单的程序来确定句点,它保存了第一个值:
double num = Math.random();
Run Code Online (Sandbox Code Playgroud)
在一个数组中,然后循环,直到它再次在一行中找到相同的值,因此一个句点已经过去,但没有结果,周期太长.
所以我的问题是:Math.random()我的版本是什么时期?或者:有没有办法用简单的程序来确定周期?
编辑:拿走了指向有关JavaScript的页面的源代码,它不相关