Java 无法在三星A5上使用Toast(2016年)
上次我在做同一个项目,我能用祝酒词。但今天当我试着用吐司时,什么也看不出来。我尽力解决这个问题,但没有成功 这就是我正在执行的[更新]Java 无法在三星A5上使用Toast(2016年),java,android,android-studio,toast,Java,Android,Android Studio,Toast,上次我在做同一个项目,我能用祝酒词。但今天当我试着用吐司时,什么也看不出来。我尽力解决这个问题,但没有成功 这就是我正在执行的[更新] package com.azeem.abubakar.dbm; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.B
package com.azeem.abubakar.dbm;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button btn_start;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialization
btn_start = (Button) findViewById(R.id.btn_start);
//Click Listener for Start Button
btn_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View tView) {
Log.d("[INFO]", "Just Above Toast!");
Toast.makeText(MainActivity.this, "Start button Clicked", Toast.LENGTH_SHORT).show();
Log.d("[INFO]", "Just Below Toast!");
}
});
}
}
下面是当我单击开始按钮时Logcat显示的内容
01-13 19:28:36.473 26670-26670/com.azeem.abubakar.dbm D/ViewRootImpl@ede0223[MainActivity]: ViewPostImeInputStage processPointer 0
01-13 19:28:36.474 26670-26670/com.azeem.abubakar.dbm W/System: ClassLoader referenced unknown path: /system/framework/QPerformance.jar
01-13 19:28:36.476 26670-26670/com.azeem.abubakar.dbm E/BoostFramework: BoostFramework() : Exception_1 = java.lang.ClassNotFoundException: Didn't find class "com.qualcomm.qti.Performance" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib, /vendor/lib]]
01-13 19:28:36.538 26670-26670/com.azeem.abubakar.dbm D/ViewRootImpl@ede0223[MainActivity]: ViewPostImeInputStage processPointer 1
01-13 19:28:36.543 26670-26670/com.azeem.abubakar.dbm D/[INFO]: Just Above Toast!
01-13 19:28:36.552 26670-26670/com.azeem.abubakar.dbm D/TextView: setTypeface with style : 0
01-13 19:28:36.560 26670-26670/com.azeem.abubakar.dbm D/[INFO]: Just Below Toast!
01-13 19:28:36.565 26670-26670/com.azeem.abubakar.dbm D/ViewRootImpl@3da3450[Toast]: ThreadedRenderer.create() translucent=true
01-13 19:28:36.571 26670-26670/com.azeem.abubakar.dbm D/InputTransport: Input channel constructed: fd=82
01-13 19:28:36.571 26670-26670/com.azeem.abubakar.dbm D/ViewRootImpl@3da3450[Toast]: setView = android.widget.LinearLayout{5b8d649 V.E...... ......I. 0,0-0,0} touchMode=true
01-13 19:28:36.572 26670-26670/com.azeem.abubakar.dbm D/ViewRootImpl@3da3450[Toast]: dispatchAttachedToWindow
01-13 19:28:36.593 26670-26670/com.azeem.abubakar.dbm D/ViewRootImpl@3da3450[Toast]: Relayout returned: oldFrame=[0,0][0,0] newFrame=[277,1596][802,1728] result=0x27 surface={isValid=true -750856192} surfaceGenerationChanged=true
mHardwareRenderer.initialize() mSurface={isValid=true -750856192} hwInitialized=true
01-13 19:28:36.594 26670-26713/com.azeem.abubakar.dbm D/mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000, [525x132]-format:1
01-13 19:28:36.631 26670-26670/com.azeem.abubakar.dbm D/ViewRootImpl@3da3450[Toast]: MSG_RESIZED_REPORT: frame=Rect(277, 1596 - 802, 1728) ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0 - 0, 0) or=1
01-13 19:28:38.565 26670-26670/com.azeem.abubakar.dbm D/ViewRootImpl@3da3450[Toast]: mHardwareRenderer.destroy()#4
01-13 19:28:38.582 26670-26670/com.azeem.abubakar.dbm D/ViewRootImpl@3da3450[Toast]: dispatchDetachedFromWindow
01-13 19:28:38.591 26670-26670/com.azeem.abubakar.dbm D/InputTransport: Input channel destroyed: fd=82
请帮帮我。谢谢
更新:
已在“设置”中为此应用启用通知
但烤面包片没有出现。据我所知,这可能是设备相关的问题,请纠正我,如果我错了。我之所以说这是一个与设备相关的问题,是因为我上次使用toast时,一切都正常,但在我的三星Galaxy设备toast中安装了一个安全更新后,它根本没有显示出来
我的手机型号是三星A5(2016)。有关软件信息,请查看随附的屏幕截图。
尝试
getApplicationContext()
而不是getBaseContext()
。转到此链接以查找在何处使用哪个上下文。尝试更改此选项:
getBaseContext()
到getApplicationContext()
或getApplication()
或this
或main活动。this
(android java页面。this)
例如:
Toast.makeText(getApplicationContext(), "Enter Valid File Name!!", Toast.LENGTH_SHORT).show();
请确保在onTextChanged
方法中使用此选项:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText edtxt_fileName = findViewById(R.id.edtxt_fileName);
edtxt_fileName.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) {
String fileName = s.toString();
if (fileName.equals("")) {
Log.d("[INFO]", "Just Above Toast!");
Toast.makeText(getApplicationContext(), "Enter Valid File Name!!", Toast.LENGTH_SHORT).show();
Log.d("[INFO]", "Just Below Toast!");
}
else{ // to show every text change
Toast.makeText(getApplicationContext(), "Text: " + fileName, Toast.LENGTH_SHORT).show();
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
尝试更改此选项:
Toast.makeText(getBaseContext(), "Enter Valid File Name!!", Toast.LENGTH_SHORT).show();
进入:
Toast.makeText(getApplicationContext(), "Enter Valid File Name!!", Toast.LENGTH_SHORT).show();
1-请验证您是否试图在主线程上显示Toast??如果没有,请尝试此代码
((MainActivity)context).runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MainActivity.this, "Enter Valid File Name!!", Toast.LENGTH_SHORT).show();
}
});
2-其次,尝试使用YourActivith.this而不是getBaseContext()
3-有时,当键盘打开时,可以看到土司,但在软键盘后面,请先尝试关闭键盘,然后再查看
希望任何人都能帮助你 尝试在oncreate中初始化上下文,并在显示代码时传递该上下文这可能会起作用使用Toast创建了一个普通项目,一切正常。你改变了什么?在我的项目中,我没有改变任何东西。但我确实在我使用的三星Galaxy设备中安装了安全更新。你能试试我的答案吗?是的,在MainActivity中使用Toast。谢谢您的关注。您找到了解决方案或解决方法了吗?我这里也有同样的问题,除了两个三星A5外,所有设备上都会显示toast!谢谢你的回答。我试过了,但是Toast仍然没有显示。你能再发布一点代码吗?这样我就可以跟踪你的问题了?我只是在按钮的onClick()侦听器中执行这段代码。代码没有问题。应用程序没有崩溃。在调用toast之前和之后,我已经打印了带有[info]标记的信息,您可以在上面的Logcat中进行验证。@AbubakarAzeem让我们尝试将getBaseContext更改为-Activity.this是的,我用Activity更改了它。this。。没有在我的设备上显示谢谢你的回答。我替换了GETBASECONTEXT(),但吐司仍然没有显示。更新我的答案,@ AbubakarAzeem请再次检查我的答案,如果这个或任何答案已经解决了你的问题,考虑通过点击复选标记接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这么做。是的,我理解@guy,我应该标记正确的答案。但是我的问题没有解决,我尝试了所有的建议。请查看我的帖子,我已经更新了。代码中没有问题,Toast正在其他设备上工作。谢谢你的关心。我检查了我设备上的代码,它正在工作。可能是最新消息,抱歉兄弟。谢谢你的回答。我试过了,但没有在我的设备上工作是的,我正在MainActivity中使用Toast。你想在主线程上显示它吗??意味着你不能在背景线程上显示toast,所以你需要确认一下。