gpt4 book ai didi

java - Android应用程序执行时强制关闭

转载 作者:行者123 更新时间:2023-12-02 04:44:14 25 4
gpt4 key购买 nike

以下代码的执行崩溃了。没有错误消息。

按下按钮后,它应该打开 Web.java 并创建一个键值。

MainActivity.java

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Spinner;

public class MainActivity extends Activity {

private Button btnGo;
final Spinner page = (Spinner)findViewById(R.id.txtPage);
String pageChoice;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final SharedPreferences sharedPref =PreferenceManager.getDefaultSharedPreferences(this);
btnGo = (Button)findViewById(R.id.btnGo);
btnGo.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
pageChoice = page.getSelectedItem().toString();

//Hopefully will allow for "global" url setting.
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("key1", pageChoice);
editor.commit();
startActivity(new Intent(MainActivity.this, Web.class));
}
});
}
}

最佳答案

这不应该出现在类变量中:

最终 Spinner 页面 = (Spinner)findViewById(R.id.txtPage);

这需要位于onCreate()方法内。在 setContentView() 之后,作为方法变量。

findViewById() 使用上下文来查找 View ,这需要有一个上下文(并且布局资源需要膨胀)。您只能在 onCreate 执行时获取上下文,而不是在加载类时获取上下文。

关于java - Android应用程序执行时强制关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29813290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com