2013-06-09 4 views
0

Я создал кнопку, которая открывает другую активность. Когда я запускаю свое приложение, он выходит из строя и говорит: «Программа не работает, остановилась». Может кто-то найти ошибку. Это мой код:Ошибка программы ошибки OnClickListener

MainActivty:

package com.example.listview2; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.first); 
     Button but = (Button) findViewById(R.id.but); 

     but.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent intent = new Intent(MainActivity.this, ListActivity.class); 
       startActivity(intent); 
      } 
     }); 

} 
} 

ListActivity:

package com.example.listview2; 

import java.util.ArrayList; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ListView; 

public class ListActivity extends Activity { 
    private EditText etInput; 
    private Button btnAdd; 
    private ListView lvItem; 
    private ArrayList<String> itemArrey; 
    private ArrayAdapter<String> itemAdapter; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     setUpView(); 

    } 

    private void setUpView() { 
     // TODO Auto-generated method stub 
     etInput = (EditText)this.findViewById(R.id.editText_input); 
     btnAdd = (Button)this.findViewById(R.id.button_add); 
     lvItem = (ListView)this.findViewById(R.id.listView_items); 


     itemArrey = new ArrayList<String>(); 
     itemArrey.clear(); 

     itemAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,itemArrey); 
     lvItem.setAdapter(itemAdapter); 


     btnAdd.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 

       addItemList(); 
      } 
     }); 

     etInput.setOnKeyListener(new View.OnKeyListener() { 

      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       // TODO Auto-generated method stub 

       if (keyCode == KeyEvent.KEYCODE_ENTER) { 
        addItemList(); 
       } 
       return true; 
      } 
     }); 


    } 

    protected void addItemList() { 
     // TODO Auto-generated method stub 

     // TODO Auto-generated method stub 
    if (isInputValid(etInput)) { 
     itemArrey.add(0,etInput.getText().toString()); 
     etInput.setText(""); 

     itemAdapter.notifyDataSetChanged(); 

    } 

    } 

    protected boolean isInputValid(EditText etInput2) { 
     // TODO Auto-generatd method stub 
     if (etInput2.getText().toString().trim().length()<1) { 
      etInput2.setError("Please Enter Item"); 
      return false; 
     } else { 
      return true; 
     } 

    } 
} 

Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.listview2" 
    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.listview2.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> 

     <activity 
      android:name="com.example.listview2.ListActivity" 
      android:label="@string/app_name">  
     </activity> 
    </application> 

</manifest> 

LogCat:

06-09 12:30:00.311: E/AndroidRuntime(2012):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at android.os.Looper.loop(Looper.java:137) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at android.app.ActivityThread.main(ActivityThread.java:5039) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at java.lang.reflect.Method.invoke(Method.java:511) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at dalvik.system.NativeStart.main(Native Method) 
06-09 12:30:00.311: E/AndroidRuntime(2012): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.listview.FirstActivity" on path: /data/app/com.example.listview-2.apk 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
06-09 12:30:00.311: E/AndroidRuntime(2012):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 
+2

переименовать ListActivity что-то еще. Android имеет свой собственный ListActivity – Blackbelt

+2

Вы запустили неправильный проект? Я не могу найти «com.example.listview.FirstActivity» в ваших кодах. Кажется, вы запустили какой-то проект, есть пакет «com.example.listview-2» – zsxwing

+0

upps @zsxwing вы были правы ..: D –

ответ

0

Невозможно найти действительность FirstActivity, которую вы вызываете. Вы должны объявить все действия в вашем manifest.xml

Добавить что-то вроде следующего в манифесте:

<activity android:name="com.example.listview.FirstActivity" /> 
0

Чистый и построить затем запустить проект снова. U может переименовать ListActivity в нечто другое, как сказал blackbelt. Если это не сработало, тогда дайте полное имя пакета в Intent, например,

Intent intent = new Intent(MainActivity.this, com.example.listview2.ListActivity.class); 
Смежные вопросы