我一直在尝试制作一个简单的程序,它取一个小的随机数并在textview中显示给用户.在最终获得随机数生成(我认为)后,程序会在我运行时抛出致命异常.代码没有错误,但我是一个完整的新手,我开始简单,以便我可以学习.几个小时后,我已经提交寻求帮助.我几乎可以肯定我的随机数字片段是在错误的区域,我只是不确定在哪里放.我尝试的每个地方都抛出同样的错误.
这是.java
package com.eai.vgp;
import java.util.Random;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
Random pp = new Random();
int a1 = pp.nextInt(10);
TextView tv = (TextView)findViewById(R.id.tv);{
tv.setText(a1);}
}
Run Code Online (Sandbox Code Playgroud)
XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/tv" …Run Code Online (Sandbox Code Playgroud) 我的这个项目的目标是用用户输入动态更新微调器.不幸的是,我正在失去这场战斗.Logcat不断向我抛出资源ID错误,但是,我不明白为什么它只是按下按钮,不会在onCreate之后抛出,如果那就是问题所在?
Eclipse(通过ctrl + space)告诉我指定包含TextView的布局的资源ID.我甚至不理解为什么我需要一个textview,如果我只是处理一个数组和一个微调器.AndroidDevelopment网站也说同样的话.我只是感到困惑.所以,我的问题是,这个错误意味着什么,我做错了什么?
我相信这是有问题的一行:
list = new ArrayAdapter<String>(this,R.layout.settings,items);
Run Code Online (Sandbox Code Playgroud)
这是.java
package com.example.thepicker;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner;
public class Settings extends Activity implements OnClickListener{
EditText getit;
ImageButton giveit;
Spinner thelist;
ArrayList<String> items;
ArrayAdapter<String> list;
String transit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
items = new ArrayList<String>();
list = new ArrayAdapter<String>(this,R.layout.settings,items);
getit = (EditText) findViewById(R.id.getit);
giveit = (ImageButton) findViewById(R.id.giveit);
thelist = (Spinner) findViewById(R.id.thelist);
thelist.setAdapter(list);
giveit.setOnClickListener(this);
} …Run Code Online (Sandbox Code Playgroud) 我的意思是,除了代码清洁,它是偏好还是禁忌?我只是好奇.
例如:
public static final class layout {
public static final int main=0x7f030000;
Run Code Online (Sandbox Code Playgroud)
为什么不使用"0x7f030000"而不是"R.id.main"?