我想显示一个Toast Message.如果我在onCreate()中执行此操作,它可以正常工作.但我想这样做,我得到一个错误:
Java.Lang.NullPointerException:尝试在空对象引用上调用虚方法'android.content.res.Resources android.content.Context.getResources()'
我该怎么办?
public void textToast(string textToDisplay) {
Toast.MakeText(this,
textToDisplay, ToastLength.Long).Show();
}
class SampleTabFragment : Fragment
{
Button add;
MainActivity main = new MainActivity();
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
base.OnCreateView(inflater, container, savedInstanceState);
var view = inflater.Inflate(Resource.Layout.Tab, container, false);
add = view.FindViewById<Button>(Resource.Id.add);
add.Click += Click;
return view;
}
void Click(object sender, EventArgs eventArgs)
{
main.textToast( "I like Toast!");
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道从ViewModel在视图中显示某种消息的最佳方法是什么。我的ViewModel正在进行POST调用,“ onResult”我想向包含特定消息的用户弹出一条消息。
这是我的ViewModel:
public class RegisterViewModel extends ViewModel implements Observable {
.
.
.
public void registerUser(PostUserRegDao postUserRegDao) {
repository.executeRegistration(postUserRegDao).enqueue(new Callback<RegistratedUserDTO>() {
@Override
public void onResponse(Call<RegistratedUserDTO> call, Response<RegistratedUserDTO> response) {
RegistratedUserDTO registratedUserDTO = response.body();
/// here I want to set the message and send it to the Activity
if (registratedUserDTO.getRegisterUserResultDTO().getError() != null) {
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的活动:
public class RegisterActivity extends BaseActivity {
@Override
protected int layoutRes() {
return R.layout.activity_register;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
AndroidInjection.inject(this);
super.onCreate(savedInstanceState); …Run Code Online (Sandbox Code Playgroud) 我试图使用以下代码在我的应用程序中显示一个Toast消息.
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Do you want to continue?");
alert.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
try{
//This code generates an Activity Not Found exception
}
catch(ActivityNotFoundException e) {
System.out.println("Activity Not Found Exception Raised");
Toast.makeText(getBaseContext(), "Activity Not Found", Toast.LENGTH_LONG).show(); // For the context I tried using getBaseContext, ActivityName.this also
}
}
});
alert.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
alert.show();
Run Code Online (Sandbox Code Playgroud)
但是这条消息仅在少数设备上显示.我已经在HTC One X上测试了这个代码,Android版本4.2.2正在运行.
如果我在Micromax A63上测试同样的代码,它也有Android 4.2.2,但它不适用于它.
我在互联网上搜索了这种错误,他们主要是在设置菜单中告诉应用程序通知禁用选项.但我的应用程序通知未被禁用.
编辑 …
剧透:这篇文章可能由于使用C和Java编程新手而有些愚蠢
有一个活动MainActivity和一个包含许多方法的公共非活动类。我需要为其中一些显示烤面包警报
当前的尝试是这样的,但对于getApplicationContext()失败,并显示“无法从静态上下文引用非静态方法”:
void errorWarn (String warning) {
Context context = android.content.ContextWrapper.getApplicationContext();
Toast.makeText(context, "Something's wrong in " + warning, Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
那么,如何从非活动类中调用吐司呢?
UPD:将从类中的方法中调用errorWarn 。因此,如果在类的方法中发生错误,则应该发出警报
我们在MainActivity中有一个editText字段。该类应从中获取并解析字符串。如果在某些步骤上处理失败,则在MainActivity中显示吐司
UPD2:完整结构。
主要活动:
public class MainActivity extends ActionBarActivity {
<...>
public void ButtonClick (View view) {
Class.testfunc("");
}
}
Run Code Online (Sandbox Code Playgroud)
类:
public class Class {
void errorWarn (Context context, String warning) {
Toast.makeText(context, "Something must be wrong. " + warning, Toast.LENGTH_SHORT).show();
}
void testfunc (String string) {
errorWarn(string);
}
}
Run Code Online (Sandbox Code Playgroud) 大家好,我有 2 个这样的 Toast 版本
版本 1:
Toast.makeText(getApplicationContext(),"hello",Toast.LENGTH_LONG).setGravity(Gravity.CENTER,0,0).show();
Run Code Online (Sandbox Code Playgroud)
版本 2:
Toast t = Toast.makeText(getApplicationContext(),"hello",Toast.LENGTH_LONG);
t.setGravity(Gravity.CENTER,0,0);
t.show();
Run Code Online (Sandbox Code Playgroud)
版本 2 工作正常,但版本 1 不行。它给出了错误无法解决方法 show()。这里出了什么问题?
当我编写版本 1 删除 setGravity() 方法时,它工作正常
Toast.makeText(getApplicationContext(),"hello",Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
你们能解释一下吗。
我正在使用带有 Android 8.0 的三星 Galaxy Note 8。
我的 Toast 消息(正在运行)没有显示
Toast.makeText(this, "ABC", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
getApplicationContext(),getBaseContext()没有帮助而不是这个。在activity.
我正在尝试从中恢复文本,EditText但是当我Toast收到字符串时,我得到了一个空字符串。
这是代码:
view =inflater.inflate(R.layout.fragment_home, container, false);
EditText id=view.findViewById(R.id.busID);
busId=id.getText().toString();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
Toast.makeText(getContext(),busId,Toast.LENGTH_LONG).show();
}
});
Run Code Online (Sandbox Code Playgroud)
这是屏幕截图
请帮帮我。我不知道为什么它返回空字符串
我们正在创建 Ionic-Native 移动应用程序。我们正在使用 ToastController ( ToastController )。我们使用position: 'top'。但它与状态栏重叠。所以我们想要自定义位置。我们试过这样
let Errortoast = this.toastCtrl.create({
message: 'Please try again later',
duration: 3000,
cssClass: 'toast',
position: 'top'
});
.toast{
margin-top: 70px;
}
Run Code Online (Sandbox Code Playgroud)
但没有运气。自定义位置的任何想法?。
我在我的 Android 应用程序中使用了以下代码,以防止用户截取屏幕截图或屏幕录制:
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
}
Run Code Online (Sandbox Code Playgroud)
它显示以下 toast 消息:“无法捕获屏幕,受 DRM 保护的图像。”
如何更改此 toast 消息?我尝试在 Stack Overflow 答案中搜索,但没有任何帮助,或者如果它是不可更改的,如何在检测到屏幕记录或捕获时显示另一条 toast 消息?
android-toast ×10
android ×8
toast ×4
java ×3
android-drm ×1
android-mvvm ×1
android-ui ×1
c# ×1
css ×1
ionic2 ×1
kotlin ×1
xamarin ×1