xmlファイルを読み込んでListViewにアイテムを表示したいのですが、それをやり直すことができます。その後、ListViewで行の色を交互に変更したいと思います。 this topic ,,,しかし、私はgetViewメソッドに問題があります,,,私の問題は何ですか?ここでAndroid StudioのListViewの代替行の色
public class MainActivity extends Activity {
ArrayAdapter<App> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText EDSearch= (EditText) findViewById(R.id.EDSearch);
ListView listView = (ListView) findViewById(R.id.listView1);
List<App> apps = null;
try {
XMLPullParserHandler parser = new XMLPullParserHandler();
InputStream is=getAssets().open("main.xml");
apps = parser.parse(is);
adapter =new ArrayAdapter<App>
(this,android.R.layout.simple_list_item_1, apps);
listView.setAdapter(adapter);
}
catch (IOException e) {e.printStackTrace();}
//Text Changed for search in ListView
listView.setTextFilterEnabled(true);
EDSearch.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
MainActivity.this.adapter.getFilter().filter(s);
}
});
}
// fill the listview by xml file
public class App {
private int id,location;
private String title,activtiy,address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getActivtiy() {
return activtiy;
}
public void setActivtiy(String activtiy) {
this.activtiy = activtiy;
}
public int getLocation() {
return location;
}
public void setLocation(int location) {
this.location = location;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return id + "\n " + title + "\n" +activtiy+"\n"+location+"\n"+address;
}
//私の問題です,,,カントreolve getViewメソッド
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if (position % 2 == 1) {
view.setBackgroundColor(Color.BLUE);
} else {
view.setBackgroundColor(Color.CYAN);
}
return view;
}
}
public class XMLPullParserHandler {
private List<App> root= new ArrayList<App>();
private App app;
private String text;
public List<App> getApps() {
return root;
}
public List<App> parse(InputStream is) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = factory.newPullParser();
parser.setInput(is, null);
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String tagname = parser.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if (tagname.equalsIgnoreCase("row")) {
app = new App();
}
break;
case XmlPullParser.TEXT:
text = parser.getText();
break;
case XmlPullParser.END_TAG:
if (tagname.equalsIgnoreCase("row")) {
root.add(app);
}else if (tagname.equalsIgnoreCase("id")) {
app.setId(Integer.parseInt(text));
}
else if (tagname.equalsIgnoreCase("title")) {
app.setTitle(text);
}
else if (tagname.equalsIgnoreCase("activity")) {
app.setActivtiy(text);
}
else if (tagname.equalsIgnoreCase("location")) {
app.setLocation(Integer.parseInt(text));
} else if (tagname.equalsIgnoreCase("address")) {
app.setAddress(text);
}
break;
default:
break;
}
eventType = parser.next();
}
} catch (XmlPullParserException e) {e.printStackTrace();}
catch (IOException e) {e.printStackTrace();}
return root;
}
}
は、これはあなたがにCustomAdapterを書く必要が
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
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="com.example.asaravani.sqlserver.MainActivity">
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="500px"
android:divider="#d8d8d8"
android:dividerHeight="1dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_below="@+id/EDSearch">
</ListView>
<EditText
android:id="@+id/EDSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:drawableRight="@android:drawable/ic_menu_search"
android:ems="10"
android:hint="کلمه مورد نظر را وارد کنید" >
<requestFocus />
</EditText>
toStringメソッドの下のアプリケーションクラス –
@AliSaravaniどこのデザインレイアウトですか? –
@AliSaravaniあなたはアダプターの権利にあなたが書いたことを意味しますか? –