0

你好,我是新來的android,我創建一個自定義列表視圖來顯示的東西列表。列表顯示完美,但當我點擊一個項目的應用程序只是崩潰和拋出ResourceNotFound異常。它應該敬酒點擊項目的位置。請幫助(我是一個片段內這樣做,但我不認爲這是問題。)當點擊一個項目時在列表視圖中獲取位置

這裏是我的BaseAdapter:

public class myAdapter extends BaseAdapter{ 
    Context context; 
    public LayoutInflater layoutInflater; 
    public myAdapter(Context c){ 
     context=c; 
     layoutInflater = LayoutInflater.from(context); 
    } 
    @Override 
    public int getCount() { 
     return apModuleArrayList.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    public class viewHolder{ 
     ImageView logo; 
     TextView name,account,password; 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     viewHolder viewHolder=new viewHolder(); 
     if (convertView==null){ 
      convertView = layoutInflater.inflate(R.layout.list_item,null); 
      viewHolder.logo=(ImageView)convertView.findViewById(R.id.imageView); 
      viewHolder.name=(TextView)convertView.findViewById(R.id.textView9); 
      viewHolder.account=(TextView)convertView.findViewById(R.id.textView10); 
      viewHolder.password=(TextView)convertView.findViewById(R.id.textView11); 
      convertView.setTag(viewHolder); 
     }else{ 
      viewHolder=(viewHolder)convertView.getTag(); 
     } 
     viewHolder.name.setText(apModuleArrayList.get(position).getname()); 
     viewHolder.account.setText(apModuleArrayList.get(position).getAccount()); 
     viewHolder.password.setText(apModuleArrayList.get(position).getpassword()); 
     return convertView; 
    } 
} 

我SetOnItemClickedListener:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Toast.makeText(getContext(),position,Toast.LENGTH_SHORT).show(); 
     } 
} 

這是我的logcat:

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: earth.planet.passwordguard, PID: 29622 
       android.content.res.Resources$NotFoundException: String resource ID #0x0 
        at android.content.res.Resources.getText(Resources.java:337) 
        at android.content.res.MiuiResources.getText(MiuiResources.java:123) 
        at android.widget.Toast.makeText(Toast.java:292) 
        at earth.planet.passwordguard.Fragment1$1.onItemClick(Fragment1.java:72) 
        at android.widget.AdapterView.performItemClick(AdapterView.java:305) 
        at android.widget.AbsListView.performItemClick(AbsListView.java:1146) 
        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3072) 
        at android.widget.AbsListView$3.run(AbsListView.java:3908) 
        at android.os.Handler.handleCallback(Handler.java:739) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5290) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706) 

回答

0

這是因爲你想打印的位置,這是一個int如果你閱讀文檔,當你發送一個int給Toast時,它假定它是一個資源ID。試試這種方式:

Toast.makeText(getContext(), "" + position, Toast.LENGTH_SHORT).show(); 

這樣,您將位置轉換爲字符串,它將被假定爲文本。

+0

謝謝,它的工作原理! – Steven97102

相關問題