我目前有一个托管单个片段的基本活动.在片段内部,我有一个启动联系人选择器的方法.
private void chooseContacts() {
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
}
Run Code Online (Sandbox Code Playgroud)
当此活动返回时,我应该如何捕获结果.我试过添加一个
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//Handle Code
}
Run Code Online (Sandbox Code Playgroud)
我的基本活动和片段,但没有触发任何方法.如果可能的话,我想让片段处理返回,以免混淆活动.
请告诉我这种情况下的最佳做法.
更新:
如果我改变:
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
Run Code Online (Sandbox Code Playgroud)
至
getActivity().startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
Run Code Online (Sandbox Code Playgroud)
然后它工作,但其他帖子让我认为这是不正确的.
java android android-intent android-contacts android-fragments
我一直在互联网上试图找出在我的网站中处理路径的最佳方法.我应该使用相对路径,绝对路径吗?
我已经多次提到过dirname(FILE).我对相对路径的一个问题是,不同目录级别的几个其他文件包含的php文件会导致相对路径中断.例如,如果目录结构是
Root
A
B
b
Run Code Online (Sandbox Code Playgroud)
并且b和A中的php文件包含来自B的另一个文件,那么B中文件中代码的相对路径将是不同的.
对不起,如果这令人困惑,我很难打出我想说的话.
因此,一般来说,处理代码中包含和文件操作的文件路径的最佳方法是什么.
谢谢
也许正常的for循环仍然是正确的方法,但我想看看是否有更简洁的方法在java 8中做到这一点.
for (int i = 0; i < LIMIT; i++) {
// Code
}
Run Code Online (Sandbox Code Playgroud)
有没有更多的java 8方法来做到这一点.我实际上并不需要我需要重复x次.
谢谢,内森
我有和android studio项目我已经检查了git.我的git ignore文件看起来像:
# built application files
*.apk
*.ap_
# files for the dex VM
*.dex
# Java class files
*.class
# generated files
bin/
gen/
# Local configuration file (sdk path, etc)
local.properties
# Eclipse project files
.classpath
.project
# Proguard folder generated by Eclipse
proguard/
# Intellij project files
*.iws
.idea/workspace.xml
.idea/tasks.xml
/gradle
Run Code Online (Sandbox Code Playgroud)
当我去我的笔记本电脑拉下项目时,我不确定我是否应该在android studio中打开或导入以正确地进入项目.当我打开时,我收到以下错误:
Cannot load module file 'D:\dev\android\projects\projectname\ProjectName.iml':
File D:\dev\android\projects\projectname\ProjectName.iml does not exist
Run Code Online (Sandbox Code Playgroud)
即使该文件确实存在.
当我导入而不是打开Android工作室要求gradle home的路径,我不知道该放什么.我正在使用android studio 0.4.3.
任何帮助将非常感激.
回答:
我能够通过开放而不是导入来构建项目.但是在这个过程中,intellij在我项目的根目录下创建了一个额外的iml文件,这个文件在我的桌面上不存在.不知道为什么它被创建,如果我需要它.不能为我的生活找出正确的方法将我的项目推入git然后在另一台机器上恢复它,而不会导致生成大量新文件并破坏事物.
我有一个应用程序需要对数百万个较小的集合应用灵活的查询,每个集合的大小从10到10000个.CQEngine在提供查询这些集合的灵活性方面工作得很好,但是比先前更严格的实现要慢得多,后者通过预先计算集合中某些项目属性的聚合来工作.该方法的问题在于它不够灵活,无法轻松处理新属性的添加.
我的问题是处理数百万个较小的集合,我可以做些什么来调整CQEngine以使其更快.
任何想法将不胜感激!
我有两个片段.片段A最初在视图中.当用户按下按钮时,使用以下方法将片段B动画化为视图.当我弹出片段B时,它会在视图中向下移动,但在完成后屏幕会闪烁白色.不确定是什么导致这种情况,似乎只发生在kit-kat而不是棒棒糖上.正在使用的动画是向上滑动并向下滑动在xml中定义的动画.
@Override
public void loadFragment(BaseFragment fragment, boolean replace, boolean addToBackStack, int animIn, int animOut, int animPopIn, int animPopout) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (animIn != -1 && animOut != -1 && animPopIn != -1 && animPopout != -1) {
transaction = transaction.setCustomAnimations(animIn, animOut, animPopIn, animOut);
} else if (animIn != -1 && animOut != -1) {
transaction = transaction.setCustomAnimations(animIn, animOut);
}
if (replace) {
transaction = transaction.replace(R.id.container, fragment);
} else {
transaction = transaction.add(R.id.container, fragment);
}
if (addToBackStack) { …Run Code Online (Sandbox Code Playgroud) android android-animation android-fragments fragmenttransaction
我正在使用新工具栏并将其设置为supportActionBar.我的问题是它覆盖了我的内容.
这是我用来设置工具栏的代码.
public void setupNavBar() {
mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
if (mToolbar != null) {
setSupportActionBar(mToolbar);
mActionBar = getSupportActionBar();
mActionBar.setDisplayShowHomeEnabled(true);
mActionBar.setDisplayShowTitleEnabled(false);
}
}
Run Code Online (Sandbox Code Playgroud)
风格:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
<style name="ToolBarStyle" parent="">
<item name="android:elevation">5dp</item>
<item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
<item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>
Run Code Online (Sandbox Code Playgroud)
和布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.v7.widget.Toolbar
style="@style/ToolBarStyle"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/material_blue_grey_800"
android:minHeight="@dimen/abc_action_bar_default_height_material"
android:id="@+id/toolbar_actionbar"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#478"
android:text="@string/hello_world" />
Run Code Online (Sandbox Code Playgroud)
我认为通过调用setSupportActionbar,系统将负责在工具栏视图下方定位内容,但这不是我所看到的.
使用工具栏的正确方法是什么.我有一些活动,我希望工具栏透明,背后的内容和其他我希望它与下面的内容不透明.
谢谢
我使用PeriodFormatter返回一个字符串,显示事件发生的时间.下面的代码不断创建字符串,如1146小时39分钟,而不是x天y小时z分钟.有任何想法吗?
谢谢,内森
PeriodFormatter formatter = new PeriodFormatterBuilder()
.printZeroNever()
.appendDays()
.appendSuffix( "d " )
.appendHours()
.appendSuffix( "h " )
.appendMinutes()
.appendSuffix( "m " )
.toFormatter();
return formatter.print( duration.toPeriod() );
Run Code Online (Sandbox Code Playgroud) 我试图使用viewpager来显示几个片段.目前我只有一个片段,但它似乎永远不会被实例化.我尝试使用pager.setCurrentItem(0),但永远不会调用适配器中的getItem方法.有谁知道为什么我的片段没有加载到下面的代码?
主要活动
public class MainActivity extends SherlockFragmentActivity {
MyPagerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
// Create the FragmentPager Adapter and assign it to the viewpager
adapter = new MyPagerAdapter( getSupportFragmentManager(), this );
ViewPager pager = ( ViewPager ) findViewById( R.id.pager );
pager.setAdapter( adapter );
pager.setCurrentItem( 0 );
// Setup the tab page indicator
TabPageIndicator indicator = ( TabPageIndicator ) findViewById( R.id.indicator );
indicator.setViewPager( pager );
}
class MyPagerAdapter extends FragmentStatePagerAdapter {
private …Run Code Online (Sandbox Code Playgroud) 我有一个包含4个嵌套线性布局的linearlayout.我需要隐藏第一个嵌套布局并显示2和3,然后隐藏2和3并显示第1个.我想用滑动效果来动画这些过渡.所以有屏幕的第一张幻灯片,然后是2和3幻灯片.我设法动画1滑动(虽然不是很顺利),但无法弄清楚如何从View.GONE到View.VISIBLE进行滑动.
如果没有动画我只是做setVisiblity 1日将其隐藏,然后setVisiblity的2/3拍他们,那么它是非常出问题和文字重叠.
请参阅下面我遇到的问题.
我用来隐藏/显示的代码:
LinearLayout item2= (LinearLayout) rootView.findViewById(R.id.item2);
LinearLayout item1= (LinearLayout) rootView.findViewById(R.id.item2);
item1.setVisibility(View.GONE);
item2.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)

我在一个片段中,我想在用户点击按钮时更改操作栏颜色并查看背景颜色.我目前在下面的代码会导致操作栏变灰,无论用户选择何种颜色.
private void changeColor( int colorId ) {
ActionBar actionBar = ((ActionBarActivity )getActivity()).getSupportActionBar();
actionBar.setBackgroundDrawable( new ColorDrawable( colorId ) );
this.getView().setBackgroundColor( getResources().getColor( colorId ) );
}
Run Code Online (Sandbox Code Playgroud)
我的styles.xml中的动作栏主题为蓝色,不确定是否有任何效果.如果您有任何建议,请告诉我.
谢谢,内森
解决方案:必须改变:
actionBar.setBackgroundDrawable( new ColorDrawable( colorId ) );
Run Code Online (Sandbox Code Playgroud)
至:
actionBar.setBackgroundDrawable( new ColorDrawable( getResources().getColor( colorId ) ) );
Run Code Online (Sandbox Code Playgroud) 我正在尝试了解蜂巢和hadoop如何相互作用。从我阅读的教程中,我似乎发现,在运行HIVE查询之前,您需要运行地图/化简作业以获取输入数据。对于我来说,这似乎适得其反,如果我已经运行了map / reduce作业并以易于解析的格式获取了数据,为什么不将数据放入传统数据库中。
感谢您的帮助,内森
我已经尝试过多次开始使用symfony 2,但总是遇到困难.这次我打算坚持下去!
到目前为止,我最大的问题是在没有用户交互的情况下放置将执行任务的对象.
防爆.
我想创建一些php类,它们每天都会处理从几个网站解析一些数据.我希望手动或通过cron作业启动此任务.因此我只需要模型和控制器.(控制器解析站点并创建模型,模型以存储已解析的数据并持久保存到db).这是创建一个仅处理这些后台作业的捆绑包的最佳方式.
我在考虑以下课程:
SiteParser
型号1
MODEL2
某些类负责编排不同站点的解析并告知创建的模型持续存在.
这看起来合乎逻辑吗?如果是这样,我将如何将该结构放入symfony?
感谢您的帮助,如果我不清楚或您有疑问,请询问我是否会提供所需的任何详细信息!