我最近制作了一个应用程序,其中包含大量执行不同功能的活动,所以我想知道,我可以只创建一个每次需要更改的活动,还是会减慢我的应用程序的速度?
我有一个从 url 共享图像的应用程序。上次 android 更新,当我想在 instagram 提要中共享图像时,我收到了来自 instagram 的消息“无法加载图像”。
但我可以分享图片故事、直接消息和任何地方......我只有 instagram 提要有这个问题。
public void onShareItemOreo() {
// Get access to bitmap image from view
imageView = (ImageView) findViewById(R.id.thumbnail);
// Get access to the URI for the bitmap
Uri bmpUri = prepareShareIntent(imageView);
if (bmpUri != null) {
//outfile is the path of the image stored in the gallery
// Construct a ShareIntent with link to image
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
shareIntent.setData(bmpUri);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_TEXT,marketLink);
// Launch sharing …Run Code Online (Sandbox Code Playgroud) 我有一个 AlertDialog,它setCancelable()是假的。在Onbackpressed函数中,我希望关闭 AlertDialog。但是当setCancelable()为 false 时,后退键根本不起作用。我应该怎么做才能摆脱这个问题?我不想改成setCancelable()真,因为我会有另一个问题。
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
lateinit var dialogBuilder: AlertDialog.Builder
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
dialogBuilder = AlertDialog.Builder(this)
dialogBuilder.setMessage("Check your internet connection")
.setPositiveButton("OK") { _, _ ->
Toast.makeText(this, "OK", Toast.LENGTH_LONG).show()
}.setCancelable(false)
.create().show()
}
}
Run Code Online (Sandbox Code Playgroud) 我试图让 Pin 进入页面,我创建了 4 个 EditTexts,我在我的活动中创建了一个函数。我的问题是当我单击退格按钮时,我想将 Current EditText 聚焦到 Before(Back) EditText 但 Key listener 不起作用。
逻辑很简单,当用户输入一个数字来编辑文本时,它会失去焦点,而下一个编辑文本正在获得焦点,然后就这样了。但问题是当我单击后退空格时,我想在 edittext 之前返回以再次输入数字。我试图在 beforeTextChange 中插入 keyListener 但它不起作用。
private void SetTextChange(final EditText etCurrent, final EditText etForward,final EditText etBack, final boolean isLast, final int currentPosition)
{
etCurrent.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (etCurrent.getText().length() == 1 && !isLast ) {
etCurrent.setTypeface(null, Typeface.NORMAL);
etCurrent.clearFocus();
etForward.requestFocus();
etForward.setCursorVisible(true); …Run Code Online (Sandbox Code Playgroud) 所以,我试图运行我的应用程序,它应该在第一次运行后显示通知。但是,它给了我这样的错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.app.Notification$Builder.<init>(Notification.java:1951)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.support.v4.app.NotificationCompatApi21$Builder.<init>(NotificationCompatApi21.java:68)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.support.v4.app.NotificationCompat$NotificationCompatImplApi21.build(NotificationCompat.java:759)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.support.v4.app.NotificationCompat$Builder.build(NotificationCompat.java:1559)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at apps.skripsi.petvac.navigationmenu.MainMenu.createButtonNotification(MainMenu.java:383)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at apps.skripsi.petvac.navigationmenu.MainMenu$DataBinatangOperation.onPostExecute(MainMenu.java:235)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at apps.skripsi.petvac.navigationmenu.MainMenu$DataBinatangOperation.onPostExecute(MainMenu.java:145)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:632)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.os.AsyncTask.access$600(AsyncTask.java:177)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102) …Run Code Online (Sandbox Code Playgroud) 我想更改Android Studio中的项目名称。我在 Stackoverflow 上找到了一些答案,但它对我不起作用。请给我推荐一些合适的解决方案。目前我正在使用 Android Studio 2.3。
永远感谢:)
如何在没有初始化程序的情况下实现变量?
我在 Kotlin 文档中发现:
val c: Int // Type required when no initializer is provided
c = 3 // deferred assignment
Run Code Online (Sandbox Code Playgroud)
但这不起作用。IDE 需要创建一个初始化程序。
有没有办法实现如下图所示的位置对话框设置,当应用程序需要 GPS 位置但找不到时触发。点击OK将立即打开系统 GPS。这对于用户来说似乎更方便,而不是将他们带到位置并手动打开。是否有可能在 Flutter 中实现这样的事情?
对话框的展开视图:
我试图使 endIconDrawable 不可见或不可见,它是上图中仅用于名字字段的编辑图标,并且希望保留其余字段的可见编辑图标,但无法做到这一点?我怎样才能做到这一点?
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilFirstName"
android:layout_width="match_parent"
android:layout_height="@dimen/_64dp"
app:endIconDrawable="@drawable/icon_edit"
app:endIconMode="custom">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etFirstName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusableInTouchMode="false"
android:hint="@string/label_fname"
android:inputType="textCapWords" />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
我想得到如下图所示的内容:
android android-drawable android-textinputlayout material-components-android
android ×8
java ×2
kotlin ×2
back ×1
flutter ×1
google-maps ×1
image ×1
material-components-android ×1
share ×1