小编ser*_*kye的帖子

我为什么要使用绑定服务?

对于应用程序和服务之间的通信,我为什么要使用绑定服务而不是在 Intent 中发送数据:

mServiceIntent = new Intent(getActivity(), RSSPullService.class);
mServiceIntent.setData(Uri.parse(dataUrl));
Run Code Online (Sandbox Code Playgroud)

我读到“如果服务已经在运行,它将再次使用 onStartCommand() 调用,以提供新的 Intent,但不会创建第二个副本。” 这意味着我可以以该意图发送消息来影响服务的进度,这就是在 google RandomMusicPlayer 示例中所做的:

public void onClick(View target) {
    // Send the correct intent to the MusicService, according to the 
    // button that was clicked
    if (target == mPlayButton)
        startService(new Intent(MusicService.ACTION_PLAY));
    else if (target == mPauseButton)
        startService(new Intent(MusicService.ACTION_PAUSE));
    else if (target == mSkipButton)
        startService(new Intent(MusicService.ACTION_SKIP));
    else if (target == mRewindButton)
        startService(new Intent(MusicService.ACTION_REWIND));
    else if (target == mStopButton)
        startService(new Intent(MusicService.ACTION_STOP));
    else if (target == mEjectButton) {
        showUrlDialog();
}
Run Code Online (Sandbox Code Playgroud)

android android-service

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

Android在运行时添加片段会导致闪烁

我有一个内容主要活动 - 一个WebView.

基本上,当用户打开应用程序时,我会快速检查他们是否已登录.如果他们没有登录,那么我会膨胀登录片段.

此时,在片段膨胀之前,您会在下面看到WebView的闪烁.它有点笨重.由于我必须在同一步骤中隐藏/显示操作栏,因此其他事情变得更糟.

有没有解决办法解决这个问题?我想我可以在需要之前隐藏我的WebView,但操作栏仍会显示片刻.对此问题的任何建议?

android android-intent android-webview android-fragments

5
推荐指数
0
解决办法
375
查看次数

Android customView如何计算onMeasure来填充父级

我正在尝试绘制一个自定义视图,一切都很好,除了最右边的部分被切断.我希望视图填充父级,只使用所需的高度(即我正在绘制的位图的高度.当我从活动的xml布局中删除填充时,自定义视图渲染得很好.所以我不是计算onMeasure并考虑父母填充.

请有人看看这段代码,并描述我为什么以及如何出错?谢谢

编辑包括@ nicko的答案和更多细节:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
    int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
    int heightMode = MeasureSpec.getMode(heightMeasureSpec);

    ViewParent parent = getParent();
    int leftPadding = 0;
    int rightPadding = 0;

    if (parent instanceof ViewGroup) {
        leftPadding = ((ViewGroup) parent).getPaddingLeft();
        rightPadding = ((ViewGroup) parent).getPaddingRight();
    }
    float wanabeHeight = calendar.getHeight();
    float wanabeWidth = parentWidth - leftPadding - rightPadding;

    int height = 0;
    //Determine Height
    switch(heightMode){
        case MeasureSpec.EXACTLY: height = parentHeight;
            break;
        case MeasureSpec.AT_MOST:
            height …
Run Code Online (Sandbox Code Playgroud)

android android-view

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

AutoCompleteTextView showDropDown 不起作用

我正在异步加载数据,我有一个 AutoCompleteTextView,当数据加载时,它会在适配器中设置。当我单击搜索视图时,我想向用户显示所有结果。我可以确认 onClickListener 正在被调用,但结果仅在我第二次单击时显示。

  private View.OnClickListener onAutoCompleteClickListener = new View.OnClickListener(){
   @Override
    public void onClick(View v) {
        autoCompleteTextView.setText(" ");
        searchAdapter.notifyDataSetChanged();
        autoCompleteTextView.showDropDown();
    }
};
Run Code Online (Sandbox Code Playgroud)

android autocompletetextview

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

使用RemoteView设置位图不起作用

我正在编写一个小部件,我需要在布局上下载并设置一个位图.我试过的一切似乎都不起作用.

我现在创建了一个测试位图来设置视图,[更新]这个工作.

  Bitmap.Config config = Bitmap.Config.ARGB_8888;
  Bitmap bitmap = Bitmap.createBitmap(imageActiveWidth, imageHeight, config); 
  Canvas canvas =  new Canvas(bitmap); // Load the Bitmap to the Canvas
  Paint paint = new Paint();
  paint.setColor(0xFFFFCCFF);
  canvas.drawRect(0, 0, imageActiveWidth, imageHeight, paint); 
  views.setImageViewBitmap(resId, bitmap);
Run Code Online (Sandbox Code Playgroud)

使用资源文件确实有效:

  Bitmap placeholderBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.placeholder_medium);
  views.setImageViewBitmap(imageSlotId, placeholderBitmap);
Run Code Online (Sandbox Code Playgroud)

但是,使用下载的位图似乎不起作用.(在异步任务下载了位图之后,我有一个方法setBitmap,它是一行:

 views.setImageViewBitmap(resId, proxy);
Run Code Online (Sandbox Code Playgroud)

结果 - 屏幕只是白色,没有位图

我真的很难理解如何让它工作,因为我需要能够下载位图并设置它们.

android android-widget

3
推荐指数
1
解决办法
6302
查看次数

数据更改时 AutoSearchTextView 下拉列表闪烁

我在操作栏中有一个 AutoSearchTextView。当我过滤数据时,下拉菜单会隐藏,然后很快就会显示出来。我真的更喜欢 Play 商店的效果,您可以在其中过滤结果,下拉菜单始终可见,但下拉菜单中的内容会发生变化。

这是我的适配器中的过滤器代码,运行历史查询,获取历史并设置列表项。

@Override
public Filter getFilter() {
    if (filter == null) {
        filter = new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence constraint) {
                ResortFilterResult result = new ResortFilterResult();
                String substr = constraint.toString().toLowerCase();
                if (constraint != null) {
                    if (constraint.length() > 0) {
                        result.setHistory(runHistoryQuery(substr));
                    }
                    if (constraint.length() >= 3) {
                        LCResort[] resorts = searchResortWithQuery(substr);
                        result.setQueryResults(Arrays.asList(resorts));
                    }
                }
                FilterResults filterResults = new FilterResults();
                filterResults.values = result;
                return filterResults;
            }

            @Override
            protected void publishResults(CharSequence constraint, FilterResults results) {
                ResortFilterResult result …
Run Code Online (Sandbox Code Playgroud)

android android-spinner android-filter

3
推荐指数
1
解决办法
928
查看次数

Android Fragments - 处理后退按钮

我从我的选项菜单中启动了一些片段,例如首选片段和对话片段.

当我打开首选项片段并点击后退按钮时,整个活动将关闭.对于按照我的预期工作的对话框片段,情况并非如此.

有人可以解释为什么会发生这种情况以及可接受的处理方式是什么?:)

要启动首选项片段:

getFragmentManager().beginTransaction()
                .add(android.R.id.content, new SettingsFragment())
                .addToBackStack("settings")
                .commit();
Run Code Online (Sandbox Code Playgroud)

android android-fragments

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

将外部html文件加载到webview中

我在将外部html文件加载到webview时遇到问题.我以前做过这个并且它应该很容易,但由于某种原因,我一直无法获得网页.

我知道文件在目录中,因为我自己使用文件浏览器放置它们.

String filename = "file:///"+ Environment.getExternalStorageDirectory() + File.separator + "Android/data/com.example/files/test_html2.html";
webview.loadUrl(filename);
Run Code Online (Sandbox Code Playgroud)

我已经尝试将文件移动到root并尝试在那里,我已经删除了file://并将其替换为content://并且什么都没有.我已在清单中读取权限.

有任何想法吗?

android webview android-webview

0
推荐指数
1
解决办法
1099
查看次数

如何在ListView中设置滚动偏移量

我需要在列表视图中设置一个偏移量。我最初是使用ScrollBy(X,Y)实现的,但是一旦我触摸列表视图,它就会恢复为零(我的偏移量为负)。

如何保持此偏移量?

android android-listview android-view

0
推荐指数
1
解决办法
1928
查看次数