我已经看到了两个在应用程序中实例化新Fragment的一般实践:
Fragment newFragment = new MyFragment();
Run Code Online (Sandbox Code Playgroud)
和
Fragment newFragment = MyFragment.newInstance();
Run Code Online (Sandbox Code Playgroud)
第二个选项使用静态方法newInstance(),通常包含以下方法.
public static Fragment newInstance()
{
MyFragment myFragment = new MyFragment();
return myFragment;
}
Run Code Online (Sandbox Code Playgroud)
起初,我认为主要的好处是我可以重载newInstance()方法以在创建Fragment的新实例时提供灵活性 - 但我也可以通过为Fragment创建重载构造函数来实现这一点.
我错过了什么?
一种方法比另一种方法有什么好处?还是只是好习惯?
我正在开发一款Android应用.我需要为我的应用程序构建一个URI来发出API请求.除非有另一种方法将变量放在URI中,否则这是我发现的最简单的方法.我发现你需要使用Uri.Builder,但我不太清楚如何使用.我的网址是:
http://lapi.transitchicago.com/api/1.0/ttarrivals.aspx?key=[redacted]&mapid=value
Run Code Online (Sandbox Code Playgroud)
我的方案是http,权限是lapi.transitchicago.com,路径是/api/1.0,路径段是ttarrivals.aspx,查询字符串是key=[redacted]&mapid=value.
我的代码如下:
Intent intent = getIntent();
String value = intent.getExtras().getString("value");
Uri.Builder builder = new Uri.Builder();
builder.scheme("http")
.authority("www.lapi.transitchicago.com")
.appendPath("api")
.appendPath("1.0")
.appendPath("ttarrivals.aspx")
.appendQueryParameter("key", "[redacted]")
.appendQueryParameter("mapid", value);
Run Code Online (Sandbox Code Playgroud)
我明白我能做到URI.add,但我该如何将其整合到Uri.Builder?我要补充的一切都像URI.add(scheme),URI.add(authority)等等?或者这不是这样做的方法吗?此外,还有其他更简单的方法将变量添加到URI/URL吗?
在使用android布局xml时,我遇到了backgroundTint属性.我不明白是什么.
还有什么backgroundTintMode?
我查了官方的Android文档/指南Looper,Handler和MessageQueue.但我无法得到它.我是android新手,对这些概念非常困惑.
为什么捆绑getParcelableArrayList,getParcelable方法; 但
Intent只有putParcelableArrayListExtra方法?我可以只传输object<T>,而不是ArrayList一个元素吗?那么,是getParcelable为了什么?
我一直在使用ToolBar它,因为它被添加到Support v7库中.我觉得我用得很好.但有一点我无法理解.为什么Google会创建这样的小部件?我的意思是我们可以ToolBar通过使用做任何事情ActionBar.我们为什么要使用ToolBar?有什么优势ToolBar了ActionBar如果有的话?是否有必要更换ActionBar的ToolBar?
任何提示都表示赞赏.并提前感谢.
PS:我发现ToolBar是一个蜕变ViewGroup.那么,我们怎么能ToolBar像Layout?有人可以发布一些代码吗?
我正试图弄清楚如何Loaders在Android 3.0中使用,但似乎无法让它工作.文档只描述使用,CursorLoader但我正在使用AsyncTaskLoader.
从文档中看来,您应该只需要实现,AsyncTaskLoader.loadInBackground()但它永远不会被调用getLoaderManager().initLoader(),然后在回调中创建加载器.
我可以看到调试消息说它Created new loader LoaderInfo{4040a828 #0 : ArticleDataLoader{4036b350}}好像是成功创建的.
是否有可能在SDK中破坏了加载器,或者在创建加载器后是否需要调用某些方法?(他们在CursorLoader示例中没有这样做).
编辑:似乎调用forceLoad()返回的Loader initLoader()至少启动加载,但这意味着你无法正确处理旋转:(
android android-3.0-honeycomb android-loadermanager android-loader
我有一个ImageView.我imageView.setImageBitmap用来将我的图像设置为背景ImageView.但它将我的图像设置为ImageView源(即android:src),但它不会将我的图像设置为ImageView背景(即android:background).
当我使用imageView.setImageBitmap,它看起来像,好像我以前imageView.setImageResource没有imageView.setBackgroundResource.
如果我想使用将图像设置为背景,我该如何处理imageView.setImageBitmap.我知道我可以通过制作习惯来做到这一点ImageView.但是没有习惯可能ImageView吗?如果有可能,请告诉我怎么做.
python 2.7.5 str()和repr()函数有什么区别?
python.org上的说明:
该
str()函数用于返回值相当于人类可读的值的表示,同时repr()用于生成可由解释器读取的表示(或者SyntaxError如果没有等效语法则强制执行)
但这对我来说并不清楚.
一些例子:
>>> s = 'Hello, world.'
>>> str(s)
'Hello, world.'
>>> repr(s)
"'Hello, world.'" # repr is giving an extra double quotes
>>> str(1.0/7.0)
'0.142857142857'
>>> repr(1.0/7.0)
'0.14285714285714285' # repr is giving value with more precision
Run Code Online (Sandbox Code Playgroud)
所以我想知道以下内容
str()应该何时使用,何时使用repr()?str()做哪些repr()不可以?repr()做哪些str()不可以?1)缓冲流如何在后台工作,它们与普通流有什么不同?使用它们的优点是什么?
2)DataInputStream也是以字节为基础的.但它有方法readLine().这里有什么意义?
android ×8
bundle ×1
handler ×1
java ×1
java-io ×1
looper ×1
parcelable ×1
python ×1
python-2.7 ×1
repr ×1
stream ×1
string ×1
uri ×1
uribuilder ×1