2012-01-09 3 views
1

실제로 TexView에서 텍스트를 설정하려고합니다. 실제로 배열 목록에 숫자를 저장하지만 항상 강제로 닫습니다. 그래서, 나는 수동으로 설정하려고합니다, 여전히 강제로 닫습니다. 나는 왜 다른 사람들이 텍스트 뷰를 설정할 수 있는지 모르지만, amountStr을 설정할 수 없다.응용 프로그램 강제 종료, customListAdapter에서 TextView를 하나 설정할 때

미리 제안 해 주셔서 감사합니다. 여기

일부 코드 :

ActActivity.class

public class ActActivity extends ListActivity { 

    private CustomListAdapter listAdapter; 
    private String[] activities_list; 

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

     activities_list = getResources().getStringArray(R.array.Activities_array); 

     listAdapter = new CustomListAdapter(this,R.layout.list_item_choose_activities,activities_list);  

     setListAdapter(listAdapter); 

    } 

    private class CustomListAdapter extends ArrayAdapter<String>{ 

     private String[] items; 
     public CustomListAdapter(Context context, int textViewResourceId, 
       String[] items) { 
      super(context, textViewResourceId, items); 
      this.items = items; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View v = convertView; 
      if(v == null){ 
       LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(R.layout.list_item_choose_activities, null); 
      } 

      TextView actNameStr = (TextView)v.findViewById(R.id.list_act_txt); 
      ImageView actLogo = (ImageView)v.findViewById(R.id.act_logo); 
      TextView amountStr = (TextView)findViewById(R.id.amount_text); 

      actNameStr.setText(items[position]); 
      // i wanna set text number here, actually i store number in array list but,it always force close. so, i try just set manually though, it still force close. 
      amountStr.setText("5"); 


      //Set icon of activity on each list items 
      switch (position) { 
      case 0: 
       actLogo.setBackgroundResource(R.drawable.a01_ofroad); 
       break; 
      case 1: 
       actLogo.setBackgroundResource(R.drawable.a02_bungeejump); 
       break; 
      case 2: 
       actLogo.setBackgroundResource(R.drawable.a03_art); 
       break; 
         default: 
       actLogo.setBackgroundResource(R.drawable.nologo); 
       break; 
      } 
     return v; 
    } 

    } 
} 

list_item_choose_activities.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
<ImageView 
    android:id="@+id/act_logo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:layout_marginLeft="5sp" 
    android:background="@drawable/nologo" 
    /> 
<TextView 
    android:id="@+id/list_act_txt" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@id/act_logo" 
    android:textColor="#494644" 
    android:padding="15dp" 
    android:textSize="15sp" 
    android:layout_gravity="left" 
    android:textStyle="bold" 
    >  
</TextView> 
<LinearLayout 
    android:id="@+id/list_bubble" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true" 
    android:layout_gravity="center" 
    android:background="@drawable/list_bubble_num"> 
    <TextView 
    android:id="@+id/amount_text" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" 
    android:textSize="15sp" 
    android:textStyle="bold" 
    android:textColor="#FFFFFF" 
    android:text="0" 
    /> 
</LinearLayout> 

</RelativeLayout> 

로그 캣

01-09 16:38:47.051: E/AndroidRuntime(21240): FATAL EXCEPTION: main 
01-09 16:38:47.051: E/AndroidRuntime(21240): java.lang.NullPointerException 
01-09 16:38:47.051: E/AndroidRuntime(21240): at com.april.travel.ActActivity$CustomListAdapter.getView(ActActivity.java:181) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.AbsListView.obtainView(AbsListView.java:1430) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.ListView.onMeasure(ListView.java:1127) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.View.measure(View.java:8313) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.ViewRoot.performTraversals(ViewRoot.java:839) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.os.Looper.loop(Looper.java:130) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at android.app.ActivityThread.main(ActivityThread.java:3683) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at java.lang.reflect.Method.invokeNative(Native Method) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at java.lang.reflect.Method.invoke(Method.java:507) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
01-09 16:38:47.051: E/AndroidRuntime(21240): at dalvik.system.NativeStart.main(Native Method) 

답변

1

TextView amountStr = (TextView)findViewById(R.id.amount_text); 어쩌면 당신은 변경해야 TextView amountStr = (TextView)v.findViewById(R.id.amount_text);

+0

LOL. 내가 어리 석다고? 내 두뇌 + 눈은 좀 쉬어야 해. 어쨌든 고마워. –

0

당신이

텍스트 뷰 amountStr = (텍스트 뷰) findViewById를 (R.id.amount_text)에서 V에 대한 참조를 누락;

?

되지는

텍스트 뷰 amountStr = (텍스트 뷰) v.findViewById (R.id.amount_text)되어야한다

?

관련 문제