在textview中添加OnClick(View v)

我已经为我的textview添加了onClick for my textview并且我没有错误但是当我运行应用程序时崩溃说应用程序已停止工作,即使我的代码中没有错误我不知道是什么问题

我希望你能帮助我,并提前感谢

这是我的logcat

12-25 03:32:44.694: I/Ads(1433): AdLoader timed out after 60000ms while getting the URL. 12-25 03:33:00.234: I/Process(1433): Sending signal. PID: 1433 SIG: 9 12-25 03:33:38.454: D/dalvikvm(1559): GC_FOR_ALLOC freed 40K, 4% free 3135K/3248K, paused 283ms, total 286ms 12-25 03:33:38.504: I/dalvikvm-heap(1559): Grow heap (frag case) to 4.200MB for 1127536-byte allocation 12-25 03:33:38.654: D/dalvikvm(1559): GC_FOR_ALLOC freed 2K, 3% free 4233K/4352K, paused 146ms, total 146ms 12-25 03:33:39.144: D/dalvikvm(1559): GC_FOR_ALLOC freed <1K, 3% free 4238K/4352K, paused 46ms, total 47ms 12-25 03:33:39.304: I/dalvikvm-heap(1559): Grow heap (frag case) to 9.535MB for 5591056-byte allocation 12-25 03:33:39.394: D/dalvikvm(1559): GC_FOR_ALLOC freed <1K, 2% free 9698K/9816K, paused 84ms, total 84ms 12-25 03:33:40.284: V/WebViewChromium(1559): Binding Chromium to the background looper Looper (main, tid 1) {b1d56e50} 12-25 03:33:40.304: I/chromium(1559): [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0, default verbosity = 0 12-25 03:33:40.334: I/BrowserProcessMain(1559): Initializing chromium process, renderers=0 12-25 03:33:40.514: D/(1559): HostConnection::get() New Host Connection established 0xb7a714f8, tid 1559 12-25 03:33:40.594: W/chromium(1559): [WARNING:proxy_service.cc(888)] PAC support disabled because there is no system implementation 12-25 03:33:41.664: E/ActivityThread(1559): Failed to find provider info for com.google.plus.platform 12-25 03:33:41.774: I/Ads(1559): To get test ads on this device, call adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 12-25 03:33:42.194: D/AndroidRuntime(1559): Shutting down VM 12-25 03:33:42.194: W/dalvikvm(1559): threadid=1: thread exiting with uncaught exception (group=0xb1a83ba8) 12-25 03:33:42.214: E/AndroidRuntime(1559): FATAL EXCEPTION: main 12-25 03:33:42.214: E/AndroidRuntime(1559): Process: imamalsajadsayings.android.com, PID: 1559 12-25 03:33:42.214: E/AndroidRuntime(1559): java.lang.RuntimeException: Unable to start activity ComponentInfo{imamalsajadsayings.android.com/imamalsajadsayings.android.com.MainActivity}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.LinearLayout 12-25 03:33:42.214: E/AndroidRuntime(1559): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 12-25 03:33:42.214: E/AndroidRuntime(1559): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 12-25 03:33:42.214: E/AndroidRuntime(1559): at android.app.ActivityThread.access$800(ActivityThread.java:135) 12-25 03:33:42.214: E/AndroidRuntime(1559): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 12-25 03:33:42.214: E/AndroidRuntime(1559): at android.os.Handler.dispatchMessage(Handler.java:102) 12-25 03:33:42.214: E/AndroidRuntime(1559): at android.os.Looper.loop(Looper.java:136) 12-25 03:33:42.214: E/AndroidRuntime(1559): at android.app.ActivityThread.main(ActivityThread.java:5017) 12-25 03:33:42.214: E/AndroidRuntime(1559): at java.lang.reflect.Method.invokeNative(Native Method) 12-25 03:33:42.214: E/AndroidRuntime(1559): at java.lang.reflect.Method.invoke(Method.java:515) 12-25 03:33:42.214: E/AndroidRuntime(1559): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 12-25 03:33:42.214: E/AndroidRuntime(1559): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 12-25 03:33:42.214: E/AndroidRuntime(1559): at dalvik.system.NativeStart.main(Native Method) 12-25 03:33:42.214: E/AndroidRuntime(1559): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.LinearLayout 12-25 03:33:42.214: E/AndroidRuntime(1559): at imamalsajadsayings.android.com.MainActivity.onCreate(MainActivity.java:20) 12-25 03:33:42.214: E/AndroidRuntime(1559): at android.app.Activity.performCreate(Activity.java:5231) 12-25 03:33:42.214: E/AndroidRuntime(1559): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 12-25 03:33:42.214: E/AndroidRuntime(1559): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 12-25 03:33:42.214: E/AndroidRuntime(1559): ... 11 more 12-25 03:33:43.064: D/dalvikvm(1559): DexOpt: --- BEGIN 'ads478949099.jar' (bootstrap=0) --- 12-25 03:33:46.024: D/dalvikvm(1559): DexOpt: --- END 'ads478949099.jar' (success) --- 12-25 03:33:46.024: D/dalvikvm(1559): DEX prep '/data/data/imamalsajadsayings.android.com/cache/ads478949099.jar': unzip in 54ms, rewrite 2963ms 12-25 03:33:46.844: I/Ads(1559): adRequestUrlHtml: AFMA_getSdkConstants();AFMA_buildAdURL({"preqs":0,"session_id":"5927457787414134416","seq_num":"1","slotname":"a152b5665edfefd","u_w":384,"msid":"imamalsajadsayings.android.com","cap":"m,a","js":"afma-sdk-a-v6.4.1","bas_off":0,"net":"ed","app_name":"3.android.imamalsajadsayings.android.com","hl":"en","gnt":3,"carrier":"310260","u_audio":4,"kw":[],"u_sd":2,"simulator":1,"ms":"OPbcxzOd9lJImWjXOtp3hqpv26-cVzCC2CRXlOnJL4iR9JnqERa-t0gYOUEDfm9_ZdloVn6JYXvSi2W_T-OmyZGApgUSdoc5Ymf5xM0wqWv4Q1-L-cPGOlLqFb__qZoBPosFpAT3wG8rSE4SjadFbESExgSB07bJ9U3TVzf2AlhGPQR-7N41d3arIEUnV2UCOeer6Y6n_imlZs00ubvpKIcI5sAN2ZBIIoZhg4Qi35EBNf6nHyiKHVecGbgmnf6PDDO1xU1MfLOSdMQeqKZQWyiIsXWPGCBZ6wqyhJmCfeABwzF4p0G6y_gKB2r9xs_HzB4e8lrIQm_l1chnFG96Tg","isu":"B3EEABB8EE11C2BE770B684D95219ECB","format":"320x50_mb","oar":0,"ad_pos":{"height":0,"visible":0,"y":0,"x":0,"width":0},"u_h":592,"pt":1,"bas_on":0,"ptime":0}); 12-25 03:33:48.574: I/Process(1559): Sending signal. PID: 1559 SIG: 9 

这是我的MainActivity.java

 package imamalsajadsayings.android.com; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import android.view.View.OnClickListener; public class MainActivity extends Activity { private LayoutInflater inflater; private LinearLayout someLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); someLayout = (LinearLayout) findViewById(R.id.state2); //layout present in activity_main inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); runNextTask(); } public void runNextTask(){ LinearLayout mInflatedLayout = (LinearLayout) inflater.inflate(R.layout.activity_main, null); @SuppressWarnings("unused") final TrackerInfo newInfo = new TrackerInfo(); //set up for model selection TextView modelTextview = (TextView)mInflatedLayout.findViewById(R.id.state2); someLayout.addView(mInflatedLayout); modelTextview.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); } @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

                      إلاجعلتهمهفيآخرته                      

您错误地初始化了TextView因为您在布局中添加了TextView ,并且尝试使用LinearLayout初始化它,这是错误的。

使用onCreate()中的TextView更改LinearLayout ,如下所示:

  someLayout = (TextView) findViewById(R.id.state2); 

为什么要在代码中两次夸大布局? 我不明白你为什么这样做。 但我提供代码与一些相关的代码尝试我的代码。

 public class MainActivity extends Activity { private LayoutInflater inflater; private TextView someLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); someLayout = (TextView) findViewById(R.id.state2); //layout present in activity_main // inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); runNextTask(); } public void runNextTask(){ // LinearLayout mInflatedLayout = (LinearLayout) inflater.inflate(R.layout.activity_main, null); @SuppressWarnings("unused") final TrackerInfo newInfo = new TrackerInfo(); //set up for model selection // TextView modelTextview = (TextView)mInflatedLayout.findViewById(R.id.state2); //someLayout.addView(mInflatedLayout); someLayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); } 

仅供参考你不能在TextView添加任何布局,因为它的View不是Layout ,在你的代码中我看到你试图将Layout添加到View这是错误的。

您的线性布局和文本视图的ID都相同或者是什么,如果是,则更改线性布局的ID。 通过下面的代码行,很明显您已经为线性布局和文本视图分配了相同的ID。

 someLayout = (LinearLayout) findViewById(R.id.state2); 

这里的问题是someLayout = (LinearLayout) findViewById(R.id.state2);

您正在尝试将textview转换为linearlayout。

使用yourtextview = (TextView) findViewById(R.id.state2);

改成

 public void runNextTask(View v){ // method signature is worng 

此外,如果textView位于activity_main.xml中。 无需夸大布局

 setContentView(R.layout.activity_main); // is enough 

并在onCreate中初始化textView

 TextView modelTextview = (TextView)findViewById(R.id.state2); 

如果您想以逐步删除的方式单击侦听器

 android:onClick="runNextTask" 

您正在尝试将textview转换为linearlayout。