小编Shu*_*oni的帖子

片段中的findViewById

我试图在片段中创建一个ImageView,它将引用我在片段的XML中创建的ImageView元素.但是,该findViewById方法仅在扩展Activity类时才有效.无论如何,我还可以在片段中使用它吗?

public class TestClass extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        ImageView imageView = (ImageView)findViewById(R.id.my_image);
        return inflater.inflate(R.layout.testclassfragment, container, false);
    }
}
Run Code Online (Sandbox Code Playgroud)

findViewById方法有一个错误,表明该方法是未定义的.

android android-imageview android-fragments findviewbyid

975
推荐指数
23
解决办法
56万
查看次数

Gradle Implementation vs API配置

我正在试图弄清楚构建我的依赖项时有什么区别apiimplementation配置.
在文档中,它说implementation有更好的构建时间,但是,在类似的问题中看到这个 评论我想知道它是否属实.
由于我不是gradle的专家,我希望有人可以提供帮助.我已经阅读了文档,但我想知道一个易于理解的解释.

implementation dependencies android gradle

183
推荐指数
8
解决办法
5万
查看次数

从片段显示对话框?

我有一些需要显示常规对话框的片段.在这些对话框中,用户可以选择是/否答案,然后片段应该相应地运行.

现在,Fragment该类没有onCreateDialog()覆盖的方法,所以我想我必须在包含的外部实现对话框Activity.没关系,但是Activity需要以某种方式向片段报告所选择的答案.我当然可以在这里使用回调模式,因此片段在Activity一个监听器类中注册自己,而Activity会通过它报告回答,或类似的东西.

但对于一个简单的任务来说,这似乎是一个相当大的混乱,因为在一个片段中显示一个"简单的"是 - 否对话框.而且,这样我的Fragment自足也会减少.

有没有更清洁的方法来做到这一点?

编辑:

这个问题的答案并没有真正详细解释如何使用DialogFragments来显示Fragments中的对话框.所以AFAIK,走的路是:

  1. 显示片段.
  2. 需要时,实例化DialogFragment.
  3. 将原始Fragment设置为此DialogFragment的目标,使用.setTargetFragment().
  4. 使用原始片段中的.show()显示DialogFragment.
  5. 当用户在此DialogFragment上选择一些选项时,通知原始片段有关此选择(例如,用户单击"是"),您可以使用.getTarget()获取原始片段的引用.
  6. 关闭DialogFragment.

android android-dialog android-dialogfragment

114
推荐指数
4
解决办法
12万
查看次数

61
推荐指数
2
解决办法
3万
查看次数

DialogFragment优于AlertDialog

在开发Android应用程序时,我已经读过,建议使用DialogFragment而不是直接使用AlertDialog来显示警报和确认.

例如,在DialogFragment的文档中完成此操作:http://developer.android.com/reference/android/app/DialogFragment.html

人们还说他们更喜欢这个: Android DialogFragment vs Dialog

我想知道这种方法的优点,因为代码变得更加复杂.

谢谢

android android-alertdialog android-dialogfragment dialogfragment

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

Android Studio:Gradle:错误:找不到符号变量

我正在研究我的应用程序,一切正常,直到我尝试在java中显示图像.

我运行应用程序一次,它正常运行,图片显示.之后它要求我导入一些库并导入它们.之后我的活动出错了.

错误如:

Gradle: error: cannot find symbol variable activity_main
Gradle: error: cannot find symbol variable button1
Gradle: error: cannot find symbol variable button2
Gradle: error: cannot find symbol variable textView
Gradle: error: cannot find symbol variable secondActivity
Run Code Online (Sandbox Code Playgroud)

在MainActivity中,我导入了这些库:

import android.R;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;
Run Code Online (Sandbox Code Playgroud)

在第二个活动中:

import android.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这一问题?

编辑:我删除了import android.R;,现在它正常工作.

android gradle android-gradle-plugin

55
推荐指数
3
解决办法
21万
查看次数

当我使用"MultiAutoCompleteTextView"时如何用空格替换逗号

MultiAutoCompleteTextView当我输入几个字母时,我正在做一个简单的程序来提示常用词.

码:

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            this,
            android.R.layout.simple_dropdown_item_1line, 
            ary);
    MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.editText);
    textView.setAdapter(adapter);

    textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

    private String[] ary = new String[] {
       "abc",
       "abcd",
       "abcde",
       "abcdef",
       "abcdefg",
       "hij",
       "hijk",
       "hijkl",
       "hijklm",
       "hijklmn",
    };
Run Code Online (Sandbox Code Playgroud)

现在,当我输入'a'并选择"abcd"但结果变为"abcd"时.如何用空格替换逗号?

谢谢!

android android-widget multiautocompletetextview

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

WakefulBroadcastReceiver已弃用

为了创建一个接收器,我WakefulBroadcastReceiver在我的旧项目中进行了扩展.但现在是deprecated.而不是WakefulBroadcastReceiverReceiver,我应该现在使用以及如何将下面的代码转换的新方法?

这是我的代码:

 public class TaskFinishReceiver extends WakefulBroadcastReceiver {
    private PowerManager mPowerManager;
    private PowerManager.WakeLock mWakeLock;
    @Override
    public void onReceive(Context context, Intent intent) {
        mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        turnOnScreen();
        Intent wakeIntent = new Intent();

        wakeIntent.setClassName("com.packagename", "com.packagename.activity.TaskFinished");
        wakeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(wakeIntent);
    }


    public void turnOnScreen(){
        mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
        mWakeLock.acquire();
    }
}
Run Code Online (Sandbox Code Playgroud)

android receiver powermanager android-broadcastreceiver

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

Android Studio 3.0.1错误:Gradle项目同步失败.基本功能(例如编辑,调试)将无法正常工作

我已经安装了Android studio 3.0.1并试图通过选择一个空活动来构建第一个应用程序,但我收到了消息:

Gradle项目同步失败.基本功能(例如编辑,调试)将无法正常工作

和错误消息,如下所示:

无法解析':app @ releaseUnitTest/compileClasspath'的依赖关系:无法解析com.android.support:appcompat-v7:26.1.0.无法解析com.android.support:appcompat-v7:26.1.0.要求:project:app无法解析com.android.support:appcompat-v7:26.1.0.无法解析POM https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/26.1.0/appcompat-v7-26.1.0.pom 已经看过doctype.

在此输入图像描述

在此输入图像描述

这是日志消息的第一部分:

2018-01-03 11:11:12,671 [d thread 8] WARN - ect.sync.idea.ProjectSetUpTask - 已经看过doctype.有关更多详细信息,请参阅IDE日志(帮助|显示日志)2018-01-03 11:11:12,671 [d thread 8] INFO - e.project.sync.GradleSyncState - Gradle sync失败:已经看过doctype.

我尝试了一些建议的解决方案,比如更改gradle版本,更新Kotlin插件(!)等等,但是它们没有用.

有解决方案吗

android gradle android-studio android-gradle-plugin

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

从Android Activity运行Python脚本

我从我的Android应用程序中收集一些数据.如何在我的Android应用程序中运行python脚本,使用收集的数据作为输入并生成一些输出?

python android android-activity

15
推荐指数
1
解决办法
2567
查看次数