gpt4 book ai didi

java - 打开跟踪文件时出错。没有那个文件或目录 [2]

转载 作者:行者123 更新时间:2023-11-30 03:12:45 25 4
gpt4 key购买 nike

我是 java 和 android 的新手,而且我主要是自学成才。我需要帮助解决这个问题。这可能是一些非常愚蠢、明显或愚蠢的事情,但是嘿,我必须从某个地方开始,对吗?我的应用程序在启动时崩溃。尝试运行我的应用程序后,我在 logcat 中收到此消息。

这是我的代码,它是一个练习,我应该制作一个小应用程序,您可以在其中显示一些国家,然后输入他们的首都。我使用 3 个按钮、2 个 TextView 和 1 个编辑文本。

主 Activity .java

    public class MainActivity extends Activity {
public int cuenta = 0;
public TextView questionlabel = (TextView) findViewById(R.id.textView1);
public TextView resultadolabel = (TextView) findViewById(R.id.textView2);
public Button startbutton = (Button) findViewById(R.id.button1);
public Button checkbutton = (Button) findViewById(R.id.button2);
public Button nextbutton = (Button) findViewById(R.id.button3);
public EditText inputbox = (EditText) findViewById(R.id.editText1);

public String[] mPaises = {
"Canada",
"Estados Unidos",
"Mexico",
"Guatemala",
"Belice"};

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

startbutton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {

//start button
questionlabel.setText(mPaises[cuenta]);
}});

checkbutton.setOnClickListener(new View.OnClickListener() {


@Override
public void onClick(View v) {
// check button
if (cuenta == 0) {
if (inputbox.toString() == "Ottawa") {
resultadolabel.setText("Correcto");}
else {resultadolabel.setText("Respuesta correcta: Ottawa");}}
else if (cuenta == 1) {
if (inputbox.toString() == "Washington") {
resultadolabel.setText("Correcto");}
else {resultadolabel.setText("Respuesta correcta: Washington");}}
else if (cuenta == 2) {
if (inputbox.toString() == "Mexico") {
resultadolabel.setText("Correcto");}
else {resultadolabel.setText("Respuesta correcta: Mexico");}}
else if (cuenta == 3) {
if (inputbox.toString() == "Guatemala") {
resultadolabel.setText("Correcto");}
else {resultadolabel.setText("Respuesta correcta: Guatemala");}}
else if (cuenta == 4) {
if (inputbox.toString() == "Belmopan") {
resultadolabel.setText("Correcto");}
else {resultadolabel.setText("Respuesta correcta: Belmoopan");}}
}
});

nextbutton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// LO QUE HACE EL NEXT BUTTON
cuenta = cuenta + 1;
questionlabel.setText(mPaises[cuenta]);


}
});

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

这是我的 Activity_Main

    <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" >

<EditText
android:id="@+id/editText1"
android:inputType="text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="129dp"
android:ems="10" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/editText1"
android:layout_alignLeft="@+id/editText1"
android:layout_marginBottom="42dp"
android:layout_marginLeft="16dp"
android:text="@string/Start" />

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginBottom="63dp"
android:text="@string/pais" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_toRightOf="@+id/button1"
android:text="@string/check" />

<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button2"
android:layout_toRightOf="@+id/button2"
android:text="@string/next" />

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button1"
android:layout_alignLeft="@+id/textView1"
android:layout_marginBottom="21dp"
android:text="@string/mensaje" />

还有我的 list

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.capitales.del.mundo"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

最佳答案

您需要首先扩充您的布局,然后检索您的 UI 元素,否则 findViewById 返回 null 并因此导致您的应用崩溃此行的 NullPointerException:

startbutton.setOnClickListener


因此,使用 setContentView(R.layout.activity_main); 扩展您的布局,然后获取您的 UI 元素。

public TextView questionlabel;
public TextView resultadolabel;
public Button startbutton;
public Button checkbutton;
public Button nextbutton;
public EditText inputbox;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

questionlabel = (TextView) findViewById(R.id.textView1);
resultadolabel = (TextView) findViewById(R.id.textView2);
startbutton = (Button) findViewById(R.id.button1);
checkbutton = (Button) findViewById(R.id.button2);
nextbutton = (Button) findViewById(R.id.button3);
inputbox = (EditText) findViewById(R.id.editText1);
/****/
}

注释:

  • if (inputbox.toString() == "Ottawa") 不要使用 == 比较 Strings 的内容。请改用 equals()
  • 参见 How do I compare Strings in Java ?
  • 下次,将您的 logcat 包含在问题中

关于java - 打开跟踪文件时出错。没有那个文件或目录 [2],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20669392/

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