2016-11-01 14 views
0

私のアプリはListViewを実行することです。実行中に、「残念なことに、Appが停止しました」というエラーメッセージが表示されました。ここに私のコードです。Androidランタイムエラー:アプリが突然停止する

package com.example.admin.customadapter; 

    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.widget.ListView; 

    import java.util.ArrayList; 


    public class MainActivity extends AppCompatActivity { 
     ListView listView; 
     ArrayList<Nation>nationifo; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     listView = (ListView)findViewById(R.id.ListViewNation); 
     nationifo = new ArrayList<>(); 
     nationifo.add(new Nation("VietNam",1945)); 
     nationifo.add(new Nation("Malaysia",1975)); 
     nationifo.add(new Nation("Laos",1943)); 

     NationAdapter adp = new NationAdapter(
       MainActivity.this, 
       R.layout.nation_list, 
       nationifo 
     ); 
     listView.setAdapter(adp); 
    } 
    } 

Nation.java

package com.example.admin.customadapter; 
    public class Nation { 
    public String name; 
    public Integer year; 
    public Nation(String Name, Integer Year){ 
     Name = name; 
     Year = year; 
    } 
} 

NationAdapter.java

package com.example.admin.customadapter; 

import android.annotation.SuppressLint; 
import android.content.Context; 
import android.text.Layout; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.TextView; 

import java.util.List; 
public class NationAdapter extends BaseAdapter { 
    Context mycontext; 
    int mylayout; 
    List<Nation>arrayNation; 
    public NationAdapter (Context context, int layout, List<Nation>nationList){ 
     mycontext = context; 
     mylayout = layout; 
     arrayNation = nationList; 
    } 
     public int getCount() { 
     return arrayNation.size(); 
    } 

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

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

    @SuppressLint("ViewHolder") 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = (LayoutInflater)  mycontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     convertView = inflater.inflate(mylayout,null); 

     TextView txtv1 = (TextView) convertView.findViewById(R.id.textView); 
     txtv1.setText(arrayNation.get(position).name); 
     TextView txtv2 =(TextView) convertView.findViewById(R.id.textView2); 
     txtv2.setText(String.valueOf(arrayNation.get(position).year)); 
     return convertView; 
    } 
} 

nation_list.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background = "#ffffff"> 

    <TextView 
     android:textColor="#ff0400" 
     android:text="TextView" 
     android:layout_width="match_parent" 
     android:layout_height="30dp" 
     android:id="@+id/textView" /> 

    <TextView 
     android:textColor="#0022ff" 
     android:text="TextView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/textView2" /> 
</LinearLayout> 

私のAndroidスタジオは2.2です。しかし、私はこのバージョンが別のものとは異なるとは思わない。

答えて

0

は、以下の

convertView = inflater.inflate(mylayout,parent,false); 

の代わりに使用してみ

convertView = inflater.inflate(mylayout,null); 
関連する問題