2013-12-16 3 views
0

Я совмещаю holoeverywhere с viewpagerindicator в моем приложении, но я получаю эту ошибку:TextView не может бросить к виджету

12-16 16:08:48.485: E/AndroidRuntime(12366): FATAL EXCEPTION: main 
12-16 16:08:48.485: E/AndroidRuntime(12366): 
java.lang.ClassCastException: android.widget.TextView cannot be cast 
to org.holoeverywhere.widget.TextView 12-16 16:08:48.485: 
E/AndroidRuntime(12366): at 
com.smart.tangsel.viewpagerindicator.TestFragmentAdapter.instantiateItem(TestFragmentAdapter.java:101) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.support.v4.view.ViewPager.addNewItem(ViewPager.java:832) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.support.v4.view.ViewPager.populate(ViewPager.java:982) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.support.v4.view.ViewPager.populate(ViewPager.java:914) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.view.View.measure(View.java:15193) 12-16 16:08:48.485: 
E/AndroidRuntime(12366): at 
android.widget.LinearLayout.measureVertical(LinearLayout.java:833) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.view.View.measure(View.java:15193) 12-16 16:08:48.485: 
E/AndroidRuntime(12366): at 
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.view.View.measure(View.java:15193) 12-16 16:08:48.485: 
E/AndroidRuntime(12366): at 
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.widget.LinearLayout.measureVertical(LinearLayout.java:681) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.view.View.measure(View.java:15193) 12-16 16:08:48.485: 
E/AndroidRuntime(12366): at 
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2217) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.view.View.measure(View.java:15193) 12-16 16:08:48.485: 
E/AndroidRuntime(12366): at 
android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1850) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1102) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1275) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4216) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.view.Choreographer.doCallbacks(Choreographer.java:555) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.view.Choreographer.doFrame(Choreographer.java:525) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
android.os.Handler.handleCallback(Handler.java:615) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.os.Handler.dispatchMessage(Handler.java:92) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
android.os.Looper.loop(Looper.java:137) 12-16 16:08:48.485: 
E/AndroidRuntime(12366): at 
android.app.ActivityThread.main(ActivityThread.java:4794) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
java.lang.reflect.Method.invokeNative(Native Method) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
java.lang.reflect.Method.invoke(Method.java:511) 12-16 16:08:48.485: 
E/AndroidRuntime(12366): at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
12-16 16:08:48.485: E/AndroidRuntime(12366): at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 12-16 
16:08:48.485: E/AndroidRuntime(12366): at 
dalvik.system.NativeStart.main(Native Method) 

и это мой код:

package com.smart.tangsel.viewpagerindicator; 

import com.smart.tangsel.LoginActivity; 
import com.smart.tangsel.UserFunctions; 
import com.smart.tangsel.app.ContentActivity; 
import com.smart.tangsel.app.ContentCommentActivity; 
import com.smart.tangsel.app.DetailLaporanActivity; 
import com.smart.tangsel.app.SplashTangsel; 
import com.smart.tangsel.app.WelcomeActivity; 

import com.smart.tangsel.database_content.DatabaseHandler; 
import com.smart.tangsel.database_content.Setting_App; 
import com.smart.tangsel.R; 

import org.holoeverywhere.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.content.pm.PackageInfo; 
import android.content.pm.PackageManager.NameNotFoundException; 
import android.graphics.Color; 
import android.graphics.Typeface; 
import android.os.Bundle; 
import android.os.Parcelable; 
import android.support.v4.view.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import org.holoeverywhere.widget.Button; 
import android.widget.ImageView; 
import android.widget.TabWidget; 
import org.holoeverywhere.widget.TextView; 

public class TestFragmentAdapter extends PagerAdapter { 

    private static String[] titles = new String[] { 
     "Mudah", 
     "Capture", 
     "Submit", 
     "Share", 
     "Mari berpartisipasi dalam Pembangunan Kota Tangerang Selatan melalui Smart Tangsel" 
    }; 

    private static String[] desc = new String[] { 
     "Hanya dengan 3 langkah mudah", 
     "Adukan temuan anda akan Kerusakan Fasilitas, Kemacetan dan Penyakit Masyarakat lainnya di kota Tangerang Selatan dengan sangat mudah.", 
     "Ketik langsung keluhan anda untuk Pemerintah Kota Tangerang Selatan.", 
     "Bagikan keluhan anda ke Social Media yang anda miliki.", 
     "" 
    }; 

    private static int[] images = new int[] { 
     R.drawable.startup1, 
     R.drawable.startup2, 
     R.drawable.startup3, 
     R.drawable.startup4, 
     R.drawable.smart_tangsel, 
    }; 

    private final Context context; 

    public TestFragmentAdapter(Context context) { 
     this.context = context; 
    } 

    UserFunctions userFunctions; 

    @Override 
    public boolean isViewFromObject(View v, Object o) { 
     // TODO Auto-generated method stub 
     return v.equals(o); 
    } 

    @Override 
    public String getPageTitle(int position) { 
     return titles[position]; 
    } 

    public String versi_app(Context context){ 
     PackageInfo pInfo = null; 
     try { 
      pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); 
     } catch (NameNotFoundException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 

    String version; 
    return version = pInfo.versionName; 
    } 

    @Override 
    public int getCount() { 
     return titles.length; 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     View v = ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)) 
       .inflate(R.layout.info_update, null, false); 

     TextView title = (TextView)v.findViewById(R.id.title_update); 
     TextView desc_up = (TextView)v.findViewById(R.id.desc_up); 
     ImageView description = (ImageView) v.findViewById(R.id.img_update); 
     Button btn_start_app = (Button) v.findViewById(R.id.btn_start_app); 

     if(position==(getCount()-1)){ 
      btn_start_app.setVisibility(View.VISIBLE); 
      desc_up.setVisibility(View.GONE); 
      btn_start_app.setOnClickListener(new android.view.View.OnClickListener() 
      { 

       public void onClick(View v) 
       {     

        DatabaseHandler settingappDb = new DatabaseHandler(context);     
        Setting_App setting_app = new Setting_App("infoupdate",versi_app(context));   
        boolean stat= settingappDb.addsetting_app(setting_app); 

        if(stat){ 
         userFunctions = new UserFunctions(); 
         if(userFunctions.isUserLoggedIn(context)){ 
          context.startActivity(new Intent(context,SplashTangsel.class)); 
         } 
         else{ 
          context.startActivity(new Intent(context,LoginActivity.class)); 
         } 
        // ((Activity) context).overridePendingTransition (R.anim.push_left_in, R.anim.push_left_out); 
         ((Activity) context).finish(); 
        } 



       } 
      }); 
     } 

     desc_up.setText(desc[position]); 

     title.setText(titles[position]); 
     title.setShadowLayer(1,1,1, Color.WHITE); 

    // if(position==0)title.setText(titles[position]+versi_app(context)); 

     description.setImageResource(images[position]); 

     //This is very important 
     ((ViewPager) container).addView(v, 0); 

     return v; 
    } 

    @Override 
    public void destroyItem(View pager, int position, Object view) { 
     ((ViewPager) pager).removeView((View) view); 
    } 

    @Override 
    public void finishUpdate(View view) { 
    } 

    @Override 
    public void restoreState(Parcelable p, ClassLoader c) { 
    } 

    @Override 
    public Parcelable saveState() { 
     return null; 
    } 

    @Override 
    public void startUpdate(View view) { 
    } 


} 

Когда я нажимаю ошибку, см. частично TextView title = (TextView) v.findViewById (R.id.title_update);

Как исправить это?

ответ

0

Удалить импорт

import org.holoeverywhere.widget.TextView; 

и заменить его

import android.widget.TextView; 
+0

thans для вашего ответа, я буду стараться :) – bukanamay

2

Судя по всему, вы используете стандартный Android TextView в файле макета вместо обычая org.holoeverywhere.widget.TextView

<org.holoeverywhere.widget.TextView 
    android:id="@+id/title_update" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
+0

thans за ваш ответ, я буду стараться :) – bukanamay

0

удостоверьтесь, что у вас был импорт org.holoeverywhere.widget.TextView .like этого

import android.app.Activity; 
import android.os.Bundle; 
import org.holoeverywhere.widget.TextView; 

public class MyActivity extends Activity { 
/** 
* Called when the activity is first created. 
*/ 

private TextView mTvShow; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mTvShow = (TextView) this.findViewById(R.layout.main); 
    mTvShow.setText("Hello"); 
    } 
} 


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
<org.holoeverywhere.widget.TextView 
     android:id="@+id/holo_tv_show" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Hello World, MyActivity"/> 
</LinearLayout> 
Смежные вопросы