안드로이드 개발 질문/답변
(글 수 45,052)
package kdy.math;
import java.net.*;
import java.text.*;
import java.util.*;
import javax.security.auth.*;
import org.xmlpull.v1.*;
import android.app.*;
import android.inputmethodservice.Keyboard.Row;
import android.os.*;
import android.util.*;
import android.view.*;
import android.widget.*;
public class MathActivity extends Activity {
private ArrayList<HashMap<String, String>> list_board = new ArrayList<HashMap<String, String>>();
private HashMap<String, String> map;
private SimpleAdapter sa;
private ArrayList<String> contents;
static final int PROGRESS_DIALOG = 0;
private ListView lv;
private TextView status;
private String st;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
status = (TextView)findViewById(R.id.textView1);
lv = (ListView)findViewById(R.id.listView1); //ListView를 보여주는 부분
//lv.setOnItemClickListener(OnItemClickListener); //
//lv.setFocusable(false); //
sa = new SimpleAdapter(this, list_board, R.layout.row_board, new String[]{"subject", "rowid", "content"},new int[]{R.id.board_subject, R.id.board_date, R.id.board_writer});
lv.setAdapter(sa);
contents = new ArrayList<String>();
//st = (String) _tv.getText(); //_tv값을 abc에 대입
//int abc = Integer.parseInt(_tv.getText()); //숫자대입
//인텐트는 값을 넘길때만 사용
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
//뷰를 가지고 오는 부분
// Adapter 를 사용 하는 lv이므로, Adapter에 기본적으로 있는 getView 를 통해서 가지고 온
View _view = sa.getView(position, view, parent);
TextView _tv = (TextView)_view.findViewById(R.id.board_subject);
Toast.makeText(MathActivity.this, _tv.getText(), Toast.LENGTH_SHORT).show();
}
});
list_board.clear();
try{
URL text = new URL("http://192.168.43.135/web.php);
XmlPullParserFactory parserCreator = XmlPullParserFactory.newInstance();
XmlPullParser parser = parserCreator.newPullParser();
parser.setInput(text.openStream(), null);
status.setText("로딩중..");
int parserEvent = parser.getEventType();
String tag = "";
boolean inTitle = false; //제목여부판단
boolean inItem = false; //아이템변경 판단
boolean inWriter = false; //작성자 판단
boolean inDate = false; //작성일
boolean inContent = false; //내용
//XML 날짜 형식 변환하기
SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분 ss초");
Date pubdate = null;
int count = 0;
contents.clear(); //가지고왔던 콘텐츠를 모두 삭제함
do{
Log.i("test",""+count);
switch(parserEvent)
{
case XmlPullParser.TEXT:
tag = parser.getName();
//제목
if(inItem && inTitle)
{
map.put("subject", parser.getText());
}
//작성일
if(inItem && inDate)
{
pubdate = new Date(Date.parse(parser.getText()));
map.put("reg_date", sdf.format(pubdate));
}
//작성자
if(inItem && inWriter)
{
map.put("rowid", parser.getText());
}
//내용
if(inItem && inContent)
{
map.put("content", parser.getText());
contents.add( parser.getText() );
}
break;
case XmlPullParser.END_TAG:
tag = parser.getName();
//태그가 끝나면...
if(tag.compareTo("data") == 0)
{
inItem = false;
list_board.add(map);
}
if(tag.compareTo("subject") == 0)
{
inTitle = false;
}
if(tag.compareTo("reg_date") == 0)
{
inWriter = false;
}
if(tag.compareTo("pubDate") == 0)
{
inDate = false;
}
if(tag.compareTo("content") == 0)
{
inContent = false;
}
break;
case XmlPullParser.START_TAG:
tag = parser.getName();
//시작하는 태그
if(tag.compareTo("data") == 0)
{
inItem = true;
map = new HashMap<String, String>();
}
//
if(tag.compareTo("subject") == 0)
{
inTitle = true;
}
//
if(tag.compareTo("reg_date") == 0)
{
inWriter = true;
}
//
if(tag.compareTo("pubDate") == 0)
{
inDate = true;
}
//
if(tag.compareTo("content") == 0)
{
inContent = true;
}
break;
}
status.setText("파싱중: " + String.valueOf(count));
parserEvent = parser.next();
count++;
if(subject.length()>4) {
// 이미지뷰 객체 icon을 row내부에 정의된 R.id.icon으로 초기화.
ImageView icon = (ImageView)row_board.findViewById(R.id.star);
// icon 객체가 표현할 리소스를 'x' 마크(R.drawable.delete)로 지정.
// icon.setImageResource(R.drawable.delete);
icon.setImageResource(R.drawable.star1);
}
return row_board;
}while(parserEvent != XmlPullParser.END_DOCUMENT);
status.setText("파싱 끝"); //status를 통해서 파싱 유무를 알려줌
sa.notifyDataSetChanged();
}catch(Exception e){}
}
}
이미지를 넣을려고하는데 subject 파싱한 태그값에 따라서 넣을려고합니다
4보다 크면 star아이콘을 작으면은 star1아이콘을 이렇게넣는거 맞습니까??
제가해보니간은 오류나도 실행도안되고..ㅠㅠ
조언부탁드립니다