在textview中添加OnClick(View v)

时间:2013-12-25 08:54:29

标签: java android

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

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

这是我的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: <html><head><script src="http://media.admob.com/sdk-core-v40.js"></script><script>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});</script></head><body></body></html>
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

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="right"
    android:orientation="vertical"
    tools:context=".MainActivity" >

                        <LinearLayout
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="right"
                        android:orientation="vertical" 
                        android:background="@drawable/images" >



                       <com.google.ads.AdView 
                       android:id="@+id/ad"
                       android:layout_width="wrap_content"  
                       android:layout_height="wrap_content"     
                       ads:adUnitId="a152b5665edfefd"
                       ads:loadAdOnCreate="true"
                       ads:adSize="BANNER" />




                    <TextView
                        android:id="@+id/state1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (من كرمت عليه نفسه هانت عليه الدنيا)                                                                         "
                        android:paddingTop="10sp"
                        android:clickable = "false"
                        style="?android:listSeparatorTextViewStyle" />




                    <TextView
                        android:id="@+id/state2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (الخير كله في صيانة الإنسان نفسه)                                                                "
                        android:paddingTop="10sp"             
                        style="?android:listSeparatorTextViewStyle"
                        android:clickable="true" 
                        android:onClick="runNextTask"/>

                    <TextView
                        android:id="@+id/state3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (ما أحب المؤمن معافى في الدنيا، وفي نفسه وماله، ولا يصاب بشيء من المصائب)"
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <TextView
                        android:id="@+id/state4"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text=" قال (عليه السلام): (ضل من ليس له حليم يرشده، وذل من ليس له سفيه يعضده..)                                                "
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <TextView
                        android:id="@+id/state5"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (ويل لمن غلبت آحاده أعشاره)                                                                                         "
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <TextView
                        android:id="@+id/state6"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (اللئيم يأكل ماله الأعداء، والذي خبث لا يخرج إلا نكداً..)                                                 "
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <View
                        android:id="@+id/view3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />

                    <TextView
                        android:id="@+id/state7"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="       قال (عليه السلام): (إن الجسد إذا لم يمرض يأشر ولا خير في جسد يأشر..)                                                                       "
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <TextView
                        android:id="@+id/state8"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (عليكم بأداء الأمانة، فوالذي بعث محمداً بالحق نبياً لو أن قاتل أبي الحسين بن علي ائتمنني على السيف الذي قتله به لأديته إليه..)"
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <TextView
                        android:id="@+id/state9"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (أفضل الأعمال عند الله ما عمل بالسنة)                                                                   "
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <TextView
                        android:id="@+id/state9"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (لقد استرقك بالود من سبقك بالشكر..)                                                                              "
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <TextView
                        android:id="@+id/state10"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (لا يكون الصديق صديقاً حتى يقطع لأخيه المؤمن قطعة من دينه يرقعها بالاستغفار..)"
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <TextView
                        android:id="@+id/state11"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (ضمنت على ربي أنه لا يسال أحد من غير حاجة إلا اضطرته المسألة يوماً إلى أن يسأل من حاجة..)"
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <TextView
                        android:id="@+id/state12"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (إياك، وما تعتذر منه)                                                                                                                  "
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                    <TextView
                        android:id="@+id/state13"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (إن الله جل جلاله يقول: وعزتي وعظمتي وجمالي، وبهائي، وعلوي، وارتفاع مكان لا يؤثر عبد هواي على هواه إلا جعلت همه في آخرته، وغناه في قلبه، كففت عنه ضيعته، وضمنت السماوات والأرض رزقه، وأتته الدنيا وهي راغمة)"
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>

                     <TextView
                         android:id="@+id/state14"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="قال (عليه السلام): (رب مغرور، مفتون، يصبح لاهياً ضاحكاً، يأكل ويشرب، وهو لا يدري لعله قد سبقت له من الله سخطه، يصلى بها نار جهنم..)"
                        android:paddingTop="10sp"
                        android:clickable = "true"
                        style="?android:listSeparatorTextViewStyle"/>



        </LinearLayout>

</ScrollView>

5 个答案:

答案 0 :(得分:2)

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

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

 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添加到{ {1}}哪个错了。

答案 1 :(得分:0)

更改为

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"

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

问题出在someLayout = (LinearLayout) findViewById(R.id.state2);

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

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

答案 4 :(得分:-1)

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