类CustomCountryList
package com.clx.androidtest0526;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class CustomCountryList extends ArrayAdapter{
private String[] countryNames;
private String[] capitalNames;
private Integer[] imageid;
private Activity context;
public CustomCountryList(Activity context, String[] countryNames, String[] capitalNames, Integer[] imageid) {
super(context, R.layout.row_item, countryNames);
this.context = context;
this.countryNames = countryNames;
this.capitalNames = capitalNames;
this.imageid = imageid;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row=convertView;
LayoutInflater inflater = context.getLayoutInflater();
if(convertView==null)
row = inflater.inflate(R.layout.row_item, null, true);
TextView textViewCountry = (TextView) row.findViewById(R.id.textViewCountry);
TextView textViewCapital = (TextView) row.findViewById(R.id.textViewCapital);
ImageView imageFlag = (ImageView) row.findViewById(R.id.imageViewFlag);
textViewCountry.setText(countryNames[position]);
textViewCapital.setText(capitalNames[position]);
imageFlag.setImageResource(imageid[position]);
textViewCountry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context, "Position =" + position, Toast.LENGTH_SHORT).show();
}
});
return row;
}
}
MainActivity
package com.clx.androidtest0526;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private String countryNames[] = {
"India",
"China",
"Nepal",
"Bhutan"
};
private String capitalNames[] = {
"Delhi",
"Beijing",
"Kathmandu",
"Thimphu"
};
private Integer imageid[] = {
R.drawable.india,
R.drawable.china,
R.drawable.nepal,
R.drawable.bhutan
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Setting header
TextView textView = new TextView(this);
textView.setTypeface(Typeface.DEFAULT_BOLD);
textView.setText("List of Countries");
ListView listView=(ListView)findViewById(R.id.list);
listView.addHeaderView(textView);
// For populating list data
CustomCountryList customCountryList = new CustomCountryList(this, countryNames, capitalNames, imageid);
listView.setAdapter(customCountryList);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
// Toast.makeText(getApplicationContext(),"You Selected "+countryNames[position-1]+ " as Country",Toast.LENGTH_SHORT).show();
}
});
}
}
res/layout下新建row_item.xml
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--rowspan:单元所占行数-->
<ImageView
android:layout_rowSpan="2"
android:layout_width="80dp"
android:layout_height="70dp"
android:scaleType="fitXY"
android:id="@+id/imageViewFlag"
android:layout_row="0"
android:layout_column="0" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_marginLeft="10dp"
android:textSize="30dp"
android:textColor="#1E90FF"
android:id="@+id/textViewCountry"
android:layout_row="0"
android:layout_column="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_marginLeft="10dp"
android:textSize="20dp"
android:textColor="#4B0082"
android:id="@+id/textViewCapital"
android:layout_row="1"
android:layout_column="1" />
</GridLayout>
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
res/values新建dimens.xml
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>
res/drawable下放四个图片
india.png
china.png
nepal.png
bhutan.png
最后效果图如下图
版权声明:本文为fabbychips原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。