안녕하세요 talkback 기능을이용할려고 합니다.
동적으로 화면의 내용을 채우기때문에 java code로 구현했는데 전혀 먹히지 않네요 보통 대체 텍스트가읽어져야하는데
클릭하면 클릭함으로 읽어져요....
/**
*
*/
package com.project8.listen.activity;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.project8.listen.config.MediaCategory;
import com.project8.listen.config.MediaRSSConfig;
import com.project8.listen.db.DBHelper;
import com.project8.listen.db.Constants.Cook;
/**
* Media List view
* 등록된 매체의 리스트를 선택하는 화면.
* @author choong
*
*/
public class MediaListActivity extends Activity implements OnItemClickListener{
private List<String> itemList;
private ListView listView;
private static boolean lifecyle = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.media);
listView = (ListView) findViewById(R.media.list);
itemList = new ArrayList<String>();
addItem();
// listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,itemList));
listView.setAdapter(new MediaListAdapter(this));
listView.setOnItemClickListener(this);
}
private void addItem(){
// MediaCategory[] category = MediaCategory.values();
DBHelper openHelper;
SQLiteDatabase sdb;
//DATABASE Connection
openHelper = new DBHelper(this);
/*데이터 확인*/
//OPEN
sdb = openHelper.getReadableDatabase();
//SELECT
Cursor c = sdb.query(Cook.TABLE_NAME, null, null, null, null, null, null);
startManagingCursor(c);
if (c.getCount() > 0){
while(c.moveToNext()){
if(c.getString(2).equals("Y")){
itemList.add(c.getString(1));
}
}
}
c.close();
openHelper.close();
sdb.close();
lifecyle = true;
}
public void onItemClick(AdapterView<?> arg0, View v, int pos, long id) {
//선태한 값 읽어오기.
String selected = itemList.get(pos);
Intent intent = new Intent(this,NewsCategoryActivity.class);
intent.putExtra(MediaRSSConfig.INTENT_KEY_VALUE_MEDIA, selected);
startActivity(intent);
}
class MediaListAdapter extends ArrayAdapter {
Activity context;
@SuppressWarnings("unchecked")
MediaListAdapter(Activity context) {
super(context, android.R.layout.simple_list_item_1,R.media.label, itemList);
this.context = context;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View row = inflater.inflate(R.layout.media_row, null);
TextView textView = (TextView) row.findViewById(R.media.label);
textView.setTextSize(Float.valueOf(Project8Activity.fontSize));
Typeface face = null;
if (Project8Activity.fontName.equals("기본폰트")) {
textView.setTypeface(null, Typeface.NORMAL);
} else if (Project8Activity.fontName.equals("서울남산체")) {
face = Typeface.createFromAsset(getAssets(),
"fonts/SeoulNamsan.ttf");
textView.setTypeface(face);
} else if (Project8Activity.fontName.equals("문화체육부 돋음체")) {
face = Typeface.createFromAsset(getAssets(), "fonts/mg.ttf");
textView.setTypeface(face);
} else {
textView.setTypeface(null, Typeface.NORMAL);
}
textView.setText(itemList.get(position));
textView.setContentDescription(itemList.get(position));
return row;
}
}
/* (non-Javadoc)
* @see android.app.Activity#onPause()
*/
@Override
protected void onPause() {
super.onPause();
lifecyle = false;
}
/* (non-Javadoc)
* @see android.app.Activity#onResume()
*/
@Override
protected void onResume() {
super.onResume();
if (!lifecyle){
DBHelper openHelper;
SQLiteDatabase sdb;
//DATABASE Connection
openHelper = new DBHelper(this);
/*데이터 확인*/
//OPEN
sdb = openHelper.getReadableDatabase();
//SELECT
Cursor c = sdb.query(Cook.TABLE_NAME, null, null, null, null, null, null);
startManagingCursor(c);
itemList = new ArrayList<String>();
if (c.getCount() > 0){
while(c.moveToNext()){
if(c.getString(2).equals("Y")){
itemList.add(c.getString(1));
}
}
}
c.close();
openHelper.close();
sdb.close();
lifecyle = true;
listView.setAdapter(new MediaListAdapter(this));
}
}
}
소스에서 보면 아래의 함수를 사용하여 하는데 왜 안되는걸까요?
도통 모르겠네요 알려주세요 ㅠ