2013-08-01 210 views
0

我想從列表視圖項開始我的活動。它對第一項工作正常,但當我點擊SecondActivity時出現錯誤。 這裏是我的ListView活動不幸的MyApplication已停止

public class menu extends ListActivity{ 
    String [] menuItems = {"MainActivity","SecondActivity","Item2","Item3"}; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 

     setListAdapter(new ArrayAdapter<String>(menu.this,android.R.layout.simple_expandable_list_item_1, menuItems)); 

    } 
    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     // TODO Auto-generated method stub 
     super.onListItemClick(l, v, position, id); 
     try { 

      Log.d("Tst","Value"); 
      Class menuItem = Class.forName("com.example.newboston." + menuItems[position]); 


      Intent itemItent = new Intent(menu.this, menuItem); 
      startActivity(itemItent); 

     } catch (ClassNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }  
    } 
} 

這裏的代碼是我SecondActivity

public class SecondActivity extends Activity{ 

    EditText etPass = (EditText) findViewById(R.id.etPassword); 
    Button btPass =(Button) findViewById(R.id.btPassword); 
    ToggleButton tgPass = (ToggleButton) findViewById(R.id.tgPassword); 
    TextView tvPass = (TextView) findViewById(R.id.displayTV); 
    Random animate = new Random(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
//  Log tag; 
//  Log.d("testing", "In toggle java"); 
     setContentView(R.layout.togglebtn); 
     passTextCheck();  
     textPosition(); 
    } 

    public void passTextCheck(){ 
    tgPass.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(tgPass.isChecked()){ 
       etPass.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
      }else{ 
       etPass.setInputType(InputType.TYPE_CLASS_TEXT); 
      } 
     } 
     }); 
    } 
    public void textPosition(){ 
     btPass.setOnClickListener(new View.OnClickListener() { 
//   Toast testToast = new Toast(toggle.this); 
      CharSequence text; 
      @Override 
      public void onClick(View v) { 
       String check = tgPass.getText().toString(); 
       if(check.contentEquals("left")){ 
        tvPass.setGravity(Gravity.LEFT); 
        tvPass.setTextColor(Color.BLUE); 
        text = "Left + Blue"; 
        Toast.makeText(SecondActivity.this, text ,Toast.LENGTH_SHORT).show(); 

       }else if(check.contentEquals("right")){ 
        tvPass.setGravity(Gravity.RIGHT); 
        tvPass.setTextColor(Color.GREEN); 
        text = "Right + Green"; 
        Toast.makeText(SecondActivity.this, text ,Toast.LENGTH_SHORT).show(); 
       }else if(check.contentEquals("center")){ 
        tvPass.setGravity(Gravity.CENTER); 
        tvPass.setTextColor(Color.MAGENTA); 
        text = "Center + Magenta"; 
        Toast.makeText(SecondActivity.this, text ,Toast.LENGTH_SHORT).show(); 
       }else if(check.contentEquals("animate")){ 
        tvPass.setText("Hello"); 
        tvPass.setGravity(Gravity.CENTER); 
        tvPass.setTextColor(Color.rgb(animate.nextInt(50), animate.nextInt(50),animate.nextInt(50)) ); 
       } 
       // TODO Auto-generated method stub 

      } 
     }); 

    } 
} 

這裏代碼是我AndroidManifest.xml代碼

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.newboston" 
    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.example.newboston.Startup" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.example.newboston.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="com.example.newboston.MAINACTIVITY" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.example.newboston.menu" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="com.example.newboston.menu" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.example.newboston.SecondActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="com.example.newboston.SecondActivity" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+0

stacktrace請求。 – Raghunandan

+0

logcat中應該有一個堆棧跟蹤。請張貼。 –

+0

沒有什麼像「這是我的代碼.plz修復」問題。 –

回答

0
public class SecondActivity extends Activity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    // Log tag; 
    // Log.d("testing", "In toggle java"); 
    setContentView(R.layout.togglebtn); 


**Changes here** 
**EditText etPass = (EditText) findViewById(R.id.etPassword); 
Button btPass =(Button) findViewById(R.id.btPassword); 
ToggleButton tgPass = (ToggleButton) findViewById(R.id.tgPassword); 
TextView tvPass = (TextView) findViewById(R.id.displayTV); 
Random animate = new Random();** 

    passTextCheck();  
    textPosition(); 
} 

public void passTextCheck(){ 
tgPass.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     if(tgPass.isChecked()){ 
      etPass.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
     }else{ 
      etPass.setInputType(InputType.TYPE_CLASS_TEXT); 
     } 
    } 
    }); 
} 
public void textPosition(){ 
    btPass.setOnClickListener(new View.OnClickListener() { 
//   Toast testToast = new Toast(toggle.this); 
      CharSequence text; 
      @Override 
      public void onClick(View v) { 
       String check = tgPass.getText().toString(); 
       if(check.contentEquals("left")){ 
        tvPass.setGravity(Gravity.LEFT); 
        tvPass.setTextColor(Color.BLUE); 
        text = "Left + Blue"; 
        Toast.makeText(SecondActivity.this, text ,Toast.LENGTH_SHORT).show(); 

      }else if(check.contentEquals("right")){ 
       tvPass.setGravity(Gravity.RIGHT); 
       tvPass.setTextColor(Color.GREEN); 
       text = "Right + Green"; 
       Toast.makeText(SecondActivity.this, text ,Toast.LENGTH_SHORT).show(); 
      }else if(check.contentEquals("center")){ 
       tvPass.setGravity(Gravity.CENTER); 
       tvPass.setTextColor(Color.MAGENTA); 
       text = "Center + Magenta"; 
       Toast.makeText(SecondActivity.this, text ,Toast.LENGTH_SHORT).show(); 
      }else if(check.contentEquals("animate")){ 
       tvPass.setText("Hello"); 
       tvPass.setGravity(Gravity.CENTER); 
       tvPass.setTextColor(Color.rgb(animate.nextInt(50), animate.nextInt(50),animate.nextInt(50)) ); 
      } 
      // TODO Auto-generated method stub 

     } 
    }); 

} 

}

+0

變化在哪裏? – FAISAL

+0

代碼與我發佈的代碼相同。 – FAISAL

+1

我在設置內容視圖後更改UI的使用情況 –

0

一個明顯的錯誤。您正在初始化onCreate之外的視圖。您可以將當前視圖層次結構的findViewById設置爲該活動。您需要先將內容設置爲活動,然後初始化您的視圖。如果沒有,你會得到NullPointerException

EditText etPass; 
    Button btPass; 
    ToggleButton tgPass; 
    TextView tvPass; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.togglebtn); 
    etPass = (EditText) findViewById(R.id.etPassword); 
    btPass =(Button) findViewById(R.id.btPassword); 
    tgPass = (ToggleButton) findViewById(R.id.tgPassword); 
    tvPass = (TextView) findViewById(R.id.displayTV); 
    .... // rest of the code 
    }