我有一个ListActivity,我想以编程方式设置布局内的TextView的文本,我需要对所有行进行设置。
此TextView将在ListActivity的每一行上显示当前语言环境的Currency Simbol。
程式码片段:
DepositoRepository repo = new DepositoRepository(this);
Cursor c = repo.getCursor();
adapter = new SimpleCursorAdapter(this, R.layout.deposito_list, c,
new String[] { Deposito.COLUNA_VALOR, Deposito.COLUNA_DATA },
new int[] { R.id.tvValorDeposito, R.id.tvDataDeposito });
setListAdapter(adapter);
我想要的所有行:
Currency moeda = Currency.getInstance(Locale.getDefault());
TextView tvMoeda = (TextView)findViewById(R.id.tvMoeda);
tvMoeda.setText(moeda.getSymbol(Locale.getDefault()));
最佳答案
您可以使用自定义适配器到listView。如果您愿意,我可以编辑我的答案并向您展示如何执行此操作。这可以使您走上正确的道路。将此代码适应您的应用程序。
然后从您的活动中调用setListAdapter(adapter),adapter是您的自定义适配器。
希望这可以帮助!
编辑:
import java.util.Currency;
import java.util.Locale;
import android.content.Context;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import android.widget.TextView;
public class CustomAdapter extends CursorAdapter{
public CustomAdapter(Context context, Cursor c) {
super(context, c);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
Currency moeda = Currency.getInstance(Locale.getDefault());
TextView tvMoeda = (TextView)view.findViewById(R.your_id);//your textView id here
tvMoeda.setText(moeda.getSymbol(Locale.getDefault()));
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.item, parent, false);//your layout here
bindView(v, context, cursor);
return v;
}
}