嘿,我是编程的新手,我需要一些帮助, 我正在为学校做一个项目,它是一个Android应用程序,用户在文本字段中输入单词,然后这些单词用于创建故事,如疯狂的libs。当我在手机上调试时,我似乎无法看到我的代码有什么问题,它只显示一个白色的屏幕。有人能向我指出我做错了什么吗?感谢...
MainActivity.java:
package com.joe.madlibs;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
EditText Noun, Adj, Name, Verb, Verb2, Noun2, Adj2;
Button Submit;
TextView Story;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Noun = (EditText) findViewById(R.id.noun1);
Adj = (EditText) findViewById(R.id.adjective1);
Name = (EditText) findViewById(R.id.name1);
Verb = (EditText) findViewById(R.id.verb1);
Verb2 = (EditText) findViewById(R.id.verb2);
Noun2 = (EditText) findViewById(R.id.noun2);
Adj2 = (EditText) findViewById(R.id.adj2);
String noun = Noun.getText().toString();
String adj = Adj.getText().toString();
String name = Name.getText().toString();
String verb = Verb.getText().toString();
String verb2 = Verb2.getText().toString();
String noun2 = Noun2.getText().toString();
String adj2 = Adj2.getText().toString();
Submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
activity_main.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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
<EditText
android:id="@+id/noun1"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/linearLayout1"
android:layout_alignTop="@+id/linearLayout1"
android:ems="10"
android:hint="@string/noun" >
</EditText>
<EditText
android:id="@+id/verb1"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/name1"
android:layout_alignBottom="@+id/name1"
android:layout_alignRight="@+id/storyBox"
android:ems="10"
android:hint="@string/verb" />
<EditText
android:id="@+id/adjective1"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/noun1"
android:layout_alignBottom="@+id/noun1"
android:layout_alignLeft="@+id/verb1"
android:ems="10"
android:hint="@string/adjective" />
<EditText
android:id="@+id/name1"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/noun1"
android:layout_below="@+id/noun1"
android:ems="10"
android:hint="@string/name" />
<EditText
android:id="@+id/verb2"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/name1"
android:layout_below="@+id/name1"
android:ems="10"
android:hint="@string/verb" />
<EditText
android:id="@+id/adj2"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/verb1"
android:layout_below="@+id/verb1"
android:ems="10"
android:hint="Adjective" />
<EditText
android:id="@+id/noun2"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/verb2"
android:layout_below="@+id/verb2"
android:ems="10"
android:hint="Noun" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Click here to get your story!" />
<TextView
android:id="@+id/storyBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/noun2"
android:layout_below="@+id/button1"
android:layout_marginTop="18dp"
android:text="This is where your story will go!"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
Manifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.Joe.madlibs"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.Joe.madlibs.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
答案 0 :(得分:0)
嗯...在尝试在其上设置onClickListener之前,您在哪里实例化“提交”按钮?我看到你在哪里声明它,但你没有实例化它。
添加:
Submit = (Button)findViewById(R.id.button1);
之前
Submit.setOnClickListener(new View.OnClickListener() {
并观看。它会像魔术一样。
关于编码约定(样式)的另一件事:当您命名实例变量时,请使用headlessCamelCase约定。使用CamelCase / InitCaps的名称(每个单词的首字母大写)只应在命名类(对象的模式)时使用,而不是在引用该类的实例(实际对象)时使用。
错:
// An instance of Button class
Button Submit;
右:
// An instance of Button class:
Button submit;
当涉及复合名称(多个单词)时,headlessCamelCase意味着你将每个单词的第一个字母大写,除了第一个单词。
右:
// An instance of Button class:
Button myVeryElderlyMotherJustSatUponNapoleonsSubmitButton;