我的项目有问题。如果你能解决这个问题,请帮助我..
这是主要代码
import android.app.Activity;
import android.app.Dialog;
import android.content.pm.ActivityInfo;
import android.util.FloatMath;
import android.util.Log;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.lang.Math;
import com.kalkulator.R;
public class MainActivity extends Activity implements OnClickListener {
private String str1="",str2="",str3="",op="";
private Float num1,num2,num3,num4,num5;
private long a,b=1;
EditText ed;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
ed=(EditText)findViewById(R.id.EditText01);
View[] keys=new View[30];
keys[0]= findViewById(R.id.button1);
keys[1]= findViewById(R.id.button2);
keys[2]= findViewById(R.id.button3);
for(int i=0;i<keys.length;i++)
{
keys[i].setOnClickListener(this);
}
ed.setText("");
}
public void onClick(View v) {
switch(v.getId())
{
case R.id.button1:
str3=ed.getText().toString();
if(str3.contains("E"))
{
Toast.makeText(getApplicationContext(),"Factorial limit is upto 25", Toast.LENGTH_SHORT).show();
break;
}
a=Long.parseLong(str3);
if(a>25)
{
Toast.makeText(getApplicationContext(),"Factorial limit is upto 25", Toast.LENGTH_SHORT).show();
break;
}
for(long i=1;i<=a;i++)
{
b*=i;
}
ed.setText(String.valueOf(b));
b=1;
break;
......
这是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" >
<EditText
android:id="@+id/EditText01"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:cursorVisible="false"
android:gravity="right"
android:textStyle="italic" >
</EditText>
<TableLayout
android:id="@+id/TableLayout01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/EditText01"
android:layout_below="@+id/EditText01"
android:layout_marginTop="28dp"
android:stretchColumns="*" >
<TableRow
android:id="@+id/TableRow02"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="n!" />
.......
我不知道为什么,但是当我在AVD_for_3_7_FWVGA_slide上运行这个项目时,我有关于日志cat FATAL EXCEPTION:Main的通知。
由于
答案 0 :(得分:1)
//setContentView(R.layout.main);
不得发表评论,您应该考虑将方向移至AndroidManifest文件
另外,
keys[0]= findViewById(R.id.button1);
keys[1]= findViewById(R.id.button2);
keys[2]= findViewById(R.id.button3);
for(int i=0;i<keys.length;i++)
{
keys[i].setOnClickListener(this);
}
ed.setText("");
您在keys
值上使用index&gt;调用findViewById它会让你产生NullPointerException。