此代码(顶部的块已注释)成功运行:
public class MainActivity extends AppCompatActivity {
/*
EditText username = (EditText)findViewById(R.id.editText_Username);
EditText password = (EditText)findViewById(R.id.editText_Password);
TextView inputdata = (TextView)findViewById(R.id.textView_InputData);
TextView welcome = (TextView)findViewById(R.id.textView_Welcome);
Button login=(Button)findViewById(R.id.button_Login);
Button anotherLogin=(Button)findViewById(R.id.button_Login_Another);
*/
public void doLoginOnClick(View v)
{
String s1=username.getText().toString();
inputdata.setText(s1);
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
}
我试图捕获的组件ID使用
findViewById(R.id.**)
正如你所看到的,我在代码的开头将这段代码放在了注释中。
EditText username = (EditText)findViewById(R.id.editText_Username);
EditText password = (EditText)findViewById(R.id.editText_Password);
TextView inputdata = (TextView)findViewById(R.id.textView_InputData);
TextView welcome = (TextView)findViewById(R.id.textView_Welcome);
Button login=(Button)findViewById(R.id.button_Login);
Button anotherLogin=(Button)findViewById(R.id.button_Login_Another);
如果我删除上面的注释并运行它(在emulator和real device中),程序会立即崩溃,我很惊讶这里出了什么问题?
甚至我也试图使用构造函数初始化同样的事情。
但如果我把它放在onCreate()
中,就不会崩溃了?为什么?
我试图获取用户名和密码的信息,并使用
EditText username = (EditText)findViewById(R.id.editText_Username);
EditText password = (EditText)findViewById(R.id.editText_Password);
TextView inputdata = (TextView)findViewById(R.id.textView_InputData);
inputdata.setText(username.getText.toString()+" "+password.getText.toString());
有更好或更简单的方法吗?
嘿,我看到你正在定义和初始化实例变量。我要做的是定义实例变量-EditText username
,然后在onCreate
方法中初始化它们-username=(EditText)findViewById(R.id.EditText_username)
不初始化实例变量的原因是,在
onCreate
方法中的setContentView
之后,元素才准备就绪——我可能会有错误,但我的最佳做法是定义实例变量,然后在onCreate方法中初始化它们
添加此代码
EditText username = findViewById(R.id.editText_Username);
EditText password = findViewById(R.id.editText_Password);
TextView inputdata = findViewById(R.id.textView_InputData);
TextView welcome = findViewById(R.id.textView_Welcome);
Button login = findViewById(R.id.button_Login);
Button anotherLogin = findViewById(R.id.button_Login_Another);
在里面
onCreate();
方法之后
setContentView(R.layout.activity_main);
实例成员变量在实例本身初始化时初始化。现在进行findViewById()
在onCreate()
之前,您的活动还没有内部需要的
窗口。在
setContentView()
(您应该在onCreate()
中调用)之前,也找不到任何视图。
因此,在
onCreative()
和setContentView()
之后初始化视图引用。
当我启动这个新游戏时,激活我的应用程序崩溃,但它只在我初始化
我有一个应用程序崩溃的点:“New Downloader(this,mURL);”: 02-25 15:40:55.405 619-619/them.vertretungsplan e/androidruntime:致命异常:main java.lang.verifyerror:thems.vertretungsplan.downloader at thems.vertretungsplan.ve
问题内容: 我在服务器上运行批处理作业时遇到问题,而在开发工作站上的Eclipse上运行良好。 我已经使用Roo设置了Spring环境,创建了一个实体,并进行了一些工作,并在我的develompent盒上对其进行了良好的测试。我初始化上下文并完成工作,但是当我在服务器上运行批处理时,上下文未正确初始化。这是代码: 这是日志和异常: 关于发生了什么任何想法或提示吗?我的类路径设置为$ PROJECT
经过测试,它在非android程序上工作,但在android上初始化后立即崩溃。日志cat也没有生成任何错误消息。我从CircularFifoBuffer找到了这个。 编辑2: 08-05 21:12:48.837:I//system/bin/batteryd(1189):1566474 v_bat 3.678(3.677),i_supply 0.500,i_demand 0.282=>v_bat
每当我请求权限时,我的应用程序就会崩溃。作为清单标记的子项,我在清单中定义了正确的使用权限。它没有给出任何错误,只是一个弹出窗口说包安装程序已经停止,监视器中有一行说“sendUserActionEvent()mView==null”,我不确定这与崩溃有关。 这是我请求权限的片段: 最低sdk设置为23,在三星Galaxy S7上进行测试。 你可以在这里看到完整的代码https://github.
问题内容: 我有以下代码,试图在ListView中创建一个简单的ListAdapter(我之前曾使用过此代码,这是我更改过的唯一地方): 逐步执行时,什么都没有发生,但是在运行时,我得到NullPointerExceptionin ChoreoGrapher.doCallbacks,当我创建一个empty时ArrayList,它不会崩溃: 是什么ChoreoGrapher,为什么会导致我的应用崩溃