2014-03-28 36 views
0
public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button PressMe = (Button)findViewById(R.id.btnPressMe); 
    PressMe.setOnClickListener(new OnClickListener() 
    { 

     @Override 
     public void onClick(View v) { 
      startActivity(new Intent(Main.this, PiggyBank.class)); 
      // TODO Auto-generated method stub 

     } 

    }); 
} 

我有一個名爲PiggyBank的項目。 PiggyBank包含兩個屏幕,一個歡迎屏幕和一個輸入/輸出屏幕。上面的代碼是我的第一個屏幕,這是一個歡迎屏幕。歡迎屏幕上有一個名爲「按我」的按鈕。當用戶按下按鈕時,它將他/她帶到輸入/輸出屏幕。這是上面的代碼應該做的。但我有一個錯誤。行startActivity(new Intent(Main.this, PiggyBank.class));有兩個紅色的下劃線,第一個在Main.this下,第二個在PiggyBank.class下。我如何解決這兩個錯誤?Main.this錯誤的Android代碼

PiggyBank.java

import java.text.DecimalFormat; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.TextView; 

public class PiggyBank2 extends Activity { 
String groupChoice; 
int NumberOfQuarters, NumberOfDimes, NumberOfNickels, NumberOfPennies; 
double TotalQuarters, TotalDimes, TotalNickels, TotalPennies; 
double Quarters, Dimes, Nickels,Pennies; 
double sumCost; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_piggy_bank2); 
    final EditText quarters = (EditText) findViewById(R.id.txtQuaters); 
    final EditText dimes = (EditText) findViewById(R.id.txtDimes); 
    final EditText nickels = (EditText) findViewById(R.id.txtNickels); 
    final EditText pennies = (EditText) findViewById(R.id.txtPennies); 
    final Spinner group = (Spinner) findViewById(R.id.txtGroup); 

    Button Calculate = (Button) findViewById(R.id.btnCalc); 
    final TextView result = ((TextView)findViewById(R.id.txtResult)); 
    Calculate.setOnClickListener(new OnClickListener() 
    { 
     public void OnClick(View v) 
     { 
      NumberOfQuarters=Integer.parseInt(quarters.getText().toString()); 
      NumberOfDimes=Integer.parseInt(dimes.getText().toString()); 
      NumberOfNickels=Integer.parseInt(nickels.getText().toString()); 
      NumberOfPennies=Integer.parseInt(pennies.getText().toString()); 


      TotalQuarters = Quarters * NumberOfQuarters; 
      TotalDimes = Dimes * NumberOfDimes; 
      TotalNickels = Nickels * NumberOfNickels; 
      TotalPennies = Pennies * NumberOfPennies; 

      DecimalFormat currency = new DecimalFormat("$###,###.00"); 

      sumCost = TotalQuarters+TotalDimes+TotalNickels+TotalPennies; 



      groupChoice= group.getSelectedItem().toString(); 
      result.setText("THIS IS YOUR TOTAL " + groupChoice + " COST IS " + currency.format(sumCost)); 
     } 

     @Override 
     public void onClick(View arg0) { 
      // 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.piggy_bank2, menu); 
    return true; 
} 

}

activity_main.xml中:

<?xml version="1.0"?> 

-<RelativeLayout tools:context=".MainActivity" android:paddingTop="@dimen/activity_vertical_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:layout_height="match_parent" android:layout_width="match_parent" xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"> 

<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:textStyle="bold" android:textSize="25sp" android:textColor="#FF0099" android:text="Welcome to Piggy Bank!" android:layout_centerHorizontal="true" android:layout_alignParentTop="true" android:id="@+id/txtPiggyBank"/> 

<ImageView android:layout_height="250dp" android:layout_width="250dp" android:layout_centerHorizontal="true" android:id="@+id/imageView1" android:src="@drawable/piggybank" android:layout_marginTop="16dp" android:layout_below="@+id/txtPiggyBank"/> 

<Button android:layout_height="50dp" android:layout_width="100dp" android:textStyle="bold" android:textColor="#FFFFFF" android:text="Press ME" android:layout_centerHorizontal="true" android:id="@+id/btnPressMe" android:layout_marginTop="48dp" android:layout_below="@+id/imageView1" android:background="#FF0099"/> 

</RelativeLayout> 

Activity_piggy_bank2.xml

<?xml version="1.0"?> 

-<RelativeLayout tools:context=".PiggyBank2" android:paddingTop="@dimen/activity_vertical_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:layout_height="match_parent" android:layout_width="match_parent" xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"> 

<EditText android:layout_height="37dp" android:layout_width="200dp" android:textSize="20sp" android:inputType="number" android:hint="@string/Quaters" android:ems="10" android:layout_marginTop="34dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:id="@+id/editText1"/> 

<EditText android:layout_height="37dp" android:layout_width="200dp" android:textSize="20sp" android:inputType="number" android:hint="@string/Dimes" android:ems="10" android:layout_marginTop="23dp" android:id="@+id/editText2" android:layout_below="@+id/editText1" android:layout_alignLeft="@+id/editText1"/> 

<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="20sp" android:layout_marginTop="28dp" android:id="@+id/txtNickels" android:layout_below="@+id/editText2" android:layout_alignLeft="@+id/txtDimes" android:textColor="#0099FF" android:text="Nickels"/> 

<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="20sp" android:id="@+id/txtQuaters" android:textColor="#00CF00" android:text="Quaters" android:layout_toRightOf="@+id/editText1" android:layout_alignBottom="@+id/editText1" android:layout_alignBaseline="@+id/editText1"/> 

<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="20sp" android:id="@+id/txtDimes" android:layout_alignLeft="@+id/txtQuaters" android:textColor="#FF66CC" android:text="Dimes" android:layout_alignBottom="@+id/editText2" android:layout_alignBaseline="@+id/editText2"/> 

<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="20sp" android:layout_marginTop="50dp" android:id="@+id/txtPennies" android:layout_below="@+id/txtNickels" android:layout_alignLeft="@+id/txtNickels" android:textColor="#FF0066" android:text="Pennies"/> 

<EditText android:layout_height="37dp" android:layout_width="200dp" android:textSize="20sp" android:inputType="number" android:hint="@string/Pennies" android:ems="10" android:id="@+id/editText4" android:layout_alignLeft="@+id/editText3" android:layout_alignBottom="@+id/txtPennies" android:layout_alignBaseline="@+id/txtPennies"/> 


-<EditText android:layout_height="37dp" android:layout_width="200dp" android:textSize="20sp" android:inputType="number" android:hint="@string/Nickels" android:ems="10" android:id="@+id/editText3" android:layout_alignLeft="@+id/editText2" android:layout_alignTop="@+id/txtNickels"> 

<requestFocus/> 

</EditText> 

<Spinner android:layout_height="50dp" android:layout_width="100dp" android:id="@+id/txtGroup" android:layout_below="@+id/txtPennies" android:prompt="@string/Title" android:entries="@array/Groups" android:layout_centerHorizontal="true"/> 

<Button android:layout_height="50dp" android:layout_width="200dp" android:layout_marginTop="16dp" android:id="@+id/btnCalc" android:layout_below="@+id/txtGroup" android:text="Calculate" android:layout_centerHorizontal="true"/> 

<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginTop="21dp" android:id="@+id/txtResult" android:layout_below="@+id/btnCalc" android:layout_centerHorizontal="true"/> 

<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/txtResult" android:layout_alignTop="@+id/txtResult" android:layout_centerHorizontal="true"/> 

</RelativeLayout> 

的AndroidManifest.xml:

<?xml version="1.0" encoding="UTF-8"?> 

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

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


-<application android:theme="@style/AppTheme" android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:allowBackup="true"> 


-<activity android:label="@string/app_name" android:name="com.example.anneholmes1.PiggyBank2"> 


-<intent-filter> 

<action android:name="android.intent.action.MAIN"/> 

<category android:name="android.intent.category.LAUNCHER"/> 

</intent-filter> 

</activity> 

</application> 

</manifest> 
+0

應該MainActivity.this –

+0

應該PiggyBank2.class –

回答

1

您錯誤地使用了Main.this而不是MainActivity.this,因爲您的活動的名稱是MainActivty而非Main。

所以正確的方法是如下,

public class MainActivity extends Activity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button PressMe = (Button)findViewById(R.id.btnPressMe); 
     PressMe.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       // TODO Auto-generated method stub 
        startActivity(new Intent(MainActivity.this, PiggyBank.class)); 
      } 
     }); 
} 
+0

我跟着他們使用了Main.this,但我認爲這本書有點老了。謝謝!但是我仍然在PiggyBank.class下有一個錯誤,我跟着關於.class的書指導者。他們使用Recipes.class,但我有不同的任務,所以我需要編寫PiggyBank應用程序。我的代碼中只有PiggyBank.class上的紅色下劃線旁邊沒有任何錯誤。我不知道如何解決它:( – Nathalie

+0

你可以上傳你的'PiggyBank.java'文件的代碼? – Kedarnath

+0

@ muggleBlood,這是MainActivty.java的代碼,但我要求的代碼'PiggyBank.java ',所以請在問題中上傳它的代碼 – Kedarnath

1

我在這裏後加入第二個答案,

的錯誤是,你已經宣佈的TextView在您的.xml文件和您正在使用的EditText內活動文件。我已更正所有錯誤。

上傳如下代碼,

MainActivity.java

public class MainActivity extends Activity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button PressMe = (Button)findViewById(R.id.btnPressMe); 
     PressMe.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View v) { 
       startActivity(new Intent(MainActivity.this, PiggyBank2.class)); 
       // TODO Auto-generated method stub 
      } 

     }); 
    } 
} 

PiggyBank2.java

public class PiggyBank2 extends Activity 
{ 
    String groupChoice; 
    int NumberOfQuarters, NumberOfDimes, NumberOfNickels, NumberOfPennies; 
    double TotalQuarters, TotalDimes, TotalNickels, TotalPennies; 
    double Quarters, Dimes, Nickels,Pennies; 
    double sumCost; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_piggy_bank2); 
     final TextView quarters = (TextView) findViewById(R.id.txtQuaters); 
     final TextView dimes = (TextView) findViewById(R.id.txtDimes); 
     final TextView nickels = (TextView) findViewById(R.id.txtNickels); 
     final TextView pennies = (TextView) findViewById(R.id.txtPennies); 
     final Spinner group = (Spinner) findViewById(R.id.txtGroup); 

     Button Calculate = (Button) findViewById(R.id.btnCalc); 
     final TextView result = (TextView)findViewById(R.id.txtResult); 
     Calculate.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       NumberOfQuarters=Integer.parseInt(quarters.getText().toString()); 
       NumberOfDimes=Integer.parseInt(dimes.getText().toString()); 
       NumberOfNickels=Integer.parseInt(nickels.getText().toString()); 
       NumberOfPennies=Integer.parseInt(pennies.getText().toString()); 


       TotalQuarters = Quarters * NumberOfQuarters; 
       TotalDimes = Dimes * NumberOfDimes; 
       TotalNickels = Nickels * NumberOfNickels; 
       TotalPennies = Pennies * NumberOfPennies; 

       DecimalFormat currency = new DecimalFormat("$###,###.00"); 
       sumCost = TotalQuarters+TotalDimes+TotalNickels+TotalPennies; 
       groupChoice= group.getSelectedItem().toString(); 
       result.setText("THIS IS YOUR TOTAL " + groupChoice + " COST IS " + currency.format(sumCost)); 
      } 
     }); 
    } 
} 
+0

@ muggleBlood你試過這個答案嗎? – Kedarnath