简体   繁体   English

在textview中添加OnClick(View v)

[英]Adding OnClick(View v) in a textview

i have added onClick in my mainactivity for my textview and i had no errors but when i run the app it crashes saying app has stopped working even though i have no errors in my codes i dont know what's the problem 我已经为我的textview添加了onClick for textview并且我没有错误但是当我运行应用程序时崩溃说应用程序已停止工作,即使我的代码中没有错误我不知道是什么问题

i hope you can help me and thanks in advance 我希望你能帮助我,并提前感谢

this is my logcat 这是我的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

and this is my MainActivity.java 这是我的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;
  }

   } 

and this is my activity_main.xml 这是我的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>

You have wrongly initialized your TextView As you have added TextView in your layout and you are trying to initialize it with LinearLayout which is wrong. 您错误地初始化了TextView因为您在布局中添加了TextView ,并且尝试使用LinearLayout初始化它,这是错误的。

Change the LinearLayout with TextView in your onCreate() as below : 使用onCreate()中的TextView更改LinearLayout ,如下所示:

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

Why are you inflating your layout two times in your code ? 为什么要在代码中对布局进行两次充气? I do not understand why are you doing so. 我不明白你为什么这样做。 But i am providing the code with some relevant code try with my code. 但我提供代码与一些相关的代码尝试我的代码。

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) {

       }
    });
 }

FYI You can not add any layout in TextView as its View not a Layout and in your code i have seen that you are trying to add Layout into View which is wrong. 仅供参考你不能在TextView添加任何布局,因为它的View不是Layout ,在你的代码中我看到你试图将Layout添加到View这是错误的。

Change to 改成

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

Also if textView is in activity_main.xml. 此外,如果textView位于activity_main.xml中。 There is no need to inflate the layout 无需夸大布局

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

And initialize textView in onCreate 并在onCreate中初始化textView

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

If you want to have click listener progrmatically remove 如果您希望以逐步删除的方式单击侦听器

android:onClick="runNextTask"

Your id for linear layout and text-view both are same or what, if it is so, then change the id of linear layout. 线性布局和文本视图的id都相同或者是什么,如果是,则更改线性布局的id。 by below line of code it is clear that you have assigned same id to linear layout and text-view. 通过下面的代码行,很明显您已经为线性布局和文本视图分配了相同的ID。

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

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

you are trying to cast textview to linearlayout. 您正在尝试将textview转换为linearlayout。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM