如何从不扩展Activity类的类更新TextView

时间:2011-04-28 04:56:16

标签: android

我是Android新手。我的代码很难过。 这是我的问题。 我的MainActivity中有一个TextView,可以扩展活动。而这个textview最重要的是从另一个类更新,该类扩展了Adapter类并实现了GestureDetector。

基于fling事件,我正在更新我的textview。我怎样才能做到这一点。

3 个答案:

答案 0 :(得分:1)

在Adapter类中创建一个字段并分配文本视图的实例,或者如果您的Adapter类是内部非静态类,则使用MainActivity.this.findViewById(...)或findViewById(...)您的MainActivity。

protected void onCreate(...) {
...
//I suppose you get your textView like this way
TextView textView = ((TextView) findViewById(...));
//I suppose your MainActivity extends from ListActivity
getListView().setAdapter(new YourAdapter(textView));
}

private static class YourAdapter extends BaseAdapter {
private TextView textView;
private YourAdapter(TextView textView) {
    this.textView = textView;
}
...
//somewhere
    this.textView.setText(".....");
}

// Inner non-static class
private class YourAdapter extends BaseAdapter {
...
//somewhere
    ((TextView) findViewById(...)).setText("...");
}

答案 1 :(得分:1)

我已经解决了我的问题。我在我的另一个类中的方法中添加了以下行。所以现在调用该方法时,我的textView会自动更改其文本。

mymainActivity.textView_name.setText((new myCurrentclass_Name(this.context_name)).some_array[value]);

这是我被允许更改我在MainActivity中使用的TextView文本的方式。

答案 2 :(得分:0)

您可以创建TextView static,也可以在AdapterClass中填写一个字段,并在TextView完成全部AdapterClass后将AdapterClass传递给TextView的构造函数1}}您可以从AdapterClass

更新public class AdapterClass extend BaseAdater..(blah blah) { TextView textView; public AdapterClass(Context context, TextView view) { this.context = context; this.textView = view; } public View getView(int position, View convertView, ViewGroup viewGroup) { //do your task textView.setText("123 Results found"); } }

修改

说这是你的AdapterClass:

AdapterClass adapter = new AdapterClass(this, textView);

并在声明AdapterClass时在您的Activity中 将textView传递给构造函数,如:

{{1}}