在textview中添加OnClick(View v)

时间:2013-12-25 09:26:56

标签: 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);
TextView someLayout = (TextView)findViewById(R.id.state2); 
inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
runNextTask(someLayout);

}
  public void runNextTask(View v){
   LinearLayout mInflatedLayout = (LinearLayout)       inflater.inflate(R.layout.activity_main, null);
   @SuppressWarnings("unused")
final TrackerInfo newInfo = new TrackerInfo();
   //set up for model selection
   someLayout.addView(mInflatedLayout);    
   someLayout = (LinearLayout) findViewById(R.id.linearlayout1); //layout present in 
   someLayout.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;
 } 

}

这是我对textviews和linearlayout的主要活动

<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:id="@+id/linearlayout1"
                    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 = "true"
                    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" />

                <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"/>
                </LinearLayout>

              </ScrollView>

2 个答案:

答案 0 :(得分:0)

这真的很有趣:

 E/AndroidRuntime(1559): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.LinearLayout
宣言:

private LinearLayout someLayout;

和另一个困惑的命名

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

并且,如果someLayout在从布局加载之前可以addView(),那怎么可能呢?

someLayout.addView(mInflatedLayout);    
someLayout = (LinearLayout) findViewById(R.id.linearlayout1);

好吧,我建议你先从正确的基础Android学习开始,

private LayoutInflater inflater;
private LinearLayout someLayout;
private TextView mTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mTextView = (TextView) findViewById( R.id.state2 );
    mTextView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // do something here
        }
    });
}

答案 1 :(得分:0)

编辑:对我这个人有更好的解释!