小编ove*_*t13的帖子

Android中的SQLiteDatabase.CursorFactory有什么用?

我通过扩展SQLiteOpenHelper类创建了一个数据库.它也创造了.这是我正在粘贴的代码

public Imagehelper(Context context) {
    super(context, DATABASE_NAME, null, SCHEMA_VERSION);

    cntxt = context;
    filename = Environment.getExternalStorageDirectory();

    DATABASE_FILE_PATH_EXTERNAL = filename.getAbsolutePath()+File.separator+DATABASE_NAME;
    Log.i("Log", ":"+DATABASE_FILE_PATH_EXTERNAL);
}
Run Code Online (Sandbox Code Playgroud)

这里一切都很好.但是如果你专注于超级超级参数传递(context,DATABASE_NAME,null,SCHEMA_VERSION); .我无法理解null参数.我知道我们必须传递SQLiteDatabase.CursorFactory对象.

但是怎么样?那有什么用?

sqlite android

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

findViewById的效率

可能大多数Android开发者都知道这findViewById不是一个廉价的操作.我们大多数人都知道的另一件事是,您可以通过使用视图层次结构的最小子树来查找其ID的视图,从而提高性能,例如:

<LinearLayout
    android:id="@+id/some_id_0">
    <LinearLayout
        android:id="@+id/some_id_1">
        <LinearLayout
            android:id="@+id/some_id_2">
            <TextView android:id="@+id/textview" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,你可能希望在搜索LinearLayoutid == @id/textview

但是,如果层次结构不是级联,而是在每个级别上进行分支,并且您想要在"叶子"上找到视图,那么会发生什么情况呢?您是findViewById通过寻找父母来执行到达分支的底部,还是findViewById在更大的子集上执行?我认为一个简单的答案是它取决于具体情况,但也许我们可以概括一下它真正依赖的东西?

谢谢

编辑:

通过更大的子集,我的意思是这样的:

<RelativeLayout android:id="@+id/r0">    
    <RelativeLayout
        android:id="@+id/r1">
        <LinearLayout
            android:id="@+id/some_id_0">
            <LinearLayout
                android:id="@+id/some_id_1">
                <LinearLayout
                    android:id="@+id/some_id_2">
                    <TextView android:id="@+id/textview0" />
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
        <LinearLayout
            android:id="@+id/some_id_3">
            <LinearLayout
                android:id="@+id/some_id_4">
                <LinearLayout
                    android:id="@+id/some_id_5">
                    <TextView android:id="@+id/textview1" />
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>
    <LinearLayout
        android:id="@+id/some_id_6">
        <LinearLayout
            android:id="@+id/some_id_7">
            <LinearLayout
                android:id="@+id/some_id_8">
                <TextView android:id="@+id/textview2" />
                <TextView android:id="@+id/textview3" />
                <TextView android:id="@+id/textview4" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

所以现在的问题是,如果我想findViewById在 …

performance android android-layout findviewbyid

13
推荐指数
1
解决办法
6516
查看次数

从url下载12 mb文本数据并保存到SD卡...发生堆内存问题.任何解决方案

我使用以下两种方法,但不适用于12 mb的大数据

char[] chars = new char[1024];
int len;
while((len=buffer.read(chars))>0) {
    data.append(chars,0,len);
}
Run Code Online (Sandbox Code Playgroud)

while ((line = reader.readLine()) != null) {
    sb.append(line + "\n");
}
Run Code Online (Sandbox Code Playgroud)

android heap-memory large-files

12
推荐指数
2
解决办法
625
查看次数

有效地创建LayoutInflater

我的问题是创建LayoutInflater实例的最佳方法是什么?两者之间有什么区别吗?

LayoutInflater inflater = LayoutInflater.from(context);
Run Code Online (Sandbox Code Playgroud)

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Run Code Online (Sandbox Code Playgroud)

哪个更好的解决方案?其他解决方案也欢迎.

谢谢.

android android-context android-inflate

7
推荐指数
1
解决办法
378
查看次数

在Android WebView中捕获"播放视频"事件

在我的Android应用程序中,我有一个WebView基本的浏览功能.我的问题是,如果用户开始播放Flash视频,我想以某种方式得到通知.我试图WebViewClient在我的webView上设置一个,并监视onLoadResource方法中的URL ,但它不起作用.我的问题如下:是否有可能发现这种事件,如果是,怎么样?

谢谢.

android android-webview

6
推荐指数
1
解决办法
1790
查看次数

仅在ICS上的XmlPullParserException

我的问题是我必须解析HTML数据

84 101 <br>some text<br><table border='1'>Here comes a table definition</table>
Run Code Online (Sandbox Code Playgroud)

并且XmlPullParserException抛出以下内容:

while (eventType != XmlPullParser.END_DOCUMENT) {
    if (eventType == XmlPullParser.START_TAG) {
        // do something
    } else if (eventType == XmlPullParser.END_TAG) {
        // do something else 
    }

    eventType = xpp.next(); // the XmlPullParserException is thrown here, on method next()
}
Run Code Online (Sandbox Code Playgroud)

非常有趣和奇怪的部分是这样的:仅在Nexus S(OS版本4.0.4)上抛出异常,在具有较低OS版本的设备上,此方法运行良好.

错误消息如下:

org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT 84 101 @1:8 in java.io.StringReader@414e3248)
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释我为什么只在ICS上发生这种情况?谢谢.

android xmlpullparser xml-parsing android-4.0-ice-cream-sandwich

5
推荐指数
1
解决办法
888
查看次数

在Android 4中使用Asynctask和webservice自动完成TextView

我正在尝试使用AsyncTask服务器进行自动完成.我在这里分享了我的代码.

这是我的代码AutocompleteTextwatcher:

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.mainautocomplete);
textView.addTextChangedListener(new TextWatcher() {
    @Override
    public void afterTextChanged(Editable editable) {

    }

    @Override
    public void beforeTextChanged(CharSequence charSequence, int arg1, int arg2, int arg3) {

    }

    @Override
    public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
        String text=charSequence.toString();
        if (text.length() > 3) {
            MyAsyncTask myTask = new MyAsyncTask();
            try {
                ArrayList<String> adapterList = new ArrayList<String>();
                adapterList=myTask.execute(url).get();/*My Web service url*/
                if(!adapterList.isEmpty()){
                    Log.v("ADPTER LIST",adapterList.toString());
                    adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item, adapterList);
                    textView.setAdapter(adapter);
                }else{ …
Run Code Online (Sandbox Code Playgroud)

android android-asynctask android-4.0-ice-cream-sandwich

5
推荐指数
1
解决办法
7701
查看次数

如何将动态布局添加到ListView?

我创建了一个Dynamic LinearLayout,我想将这些布局添加到ListView.代码如下:

DynamicLayout代码:

import android.content.Context;
import android.widget.LinearLayout;
import android.widget.TextView;

public class DynamicContentLayout extends LinearLayout{
    private Context context;
    private int linearLayoutMargin;

    public DynamicContentLayout(Context context) {
        super(context);
        this.context = context;
        linearLayoutMargin = (int) context.getResources().getDimension(R.dimen.xlarge_margin_padding_fixed);
        initViews();
    }

    private void initViews() {
        LinearLayout.LayoutParams layout_lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        layout_lp.setMargins(linearLayoutMargin, linearLayoutMargin, linearLayoutMargin, linearLayoutMargin);
        this.setLayoutParams(layout_lp);
        this.setOrientation(LinearLayout.VERTICAL);
        this.addView(headerTitle("My Text"));

    }

    private TextView headerTitle(String title) {
        TextView txtView = new TextView(context);
        txtView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
        txtView.setPadding(6, 6, 6, 6);
        txtView.setText(title);
        txtView.setBackgroundColor(context.getResources().getColor(R.color.red));
        txtView.setTextColor(context.getResources().getColor(R.color.white));
        return txtView;
    }

}
Run Code Online (Sandbox Code Playgroud)

ListAdpaterCode:

import java.util.ArrayList; …
Run Code Online (Sandbox Code Playgroud)

layout android listview dynamic

5
推荐指数
1
解决办法
4179
查看次数

在Android中滑出时删除类似通知的列表元素

我想知道如何将一个ListView元素滑出来slide,就像你可以slide从通知栏中通知一样Android.这是我的情况:

我有一个项目列表,当用户想要从该列表中删除项目时,她只需将元素滑向屏幕边缘.我希望这个幻灯片是可见的,例如使用某种类型的动画,这些动画可以在拿出View项目时滑出.

以下是一些图片来说明这一点.

首先,这是通知的正常状态.

正常的通知状态

然后,这是在滑出期间

滑出期间的状态

谢谢.

android android-animation android-listview android-notifications

5
推荐指数
2
解决办法
2233
查看次数

在Android上仅允许纵向时检测方向更改

我必须解决以下几个:我有一个Activity它的android:screenOrientation="portrait".即使当设备在Activity可见时旋转到横向时,我必须启动另一个设备,并且当设备旋转回纵向时,我必须进行finish()横向活动.我尝试用a执行此操作BroadcastReceiver,但是这个特殊活动因为没有收到任何广播android:screenOrientation="portrait".任何帮助都非常感谢.

谢谢.

android android-orientation

4
推荐指数
2
解决办法
5640
查看次数