我有一个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;
    }

}

10-07 13:27