作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试从java类调用fragment方法:我知道关于这个主题的堆栈溢出有很多问题,但我的情况不同
ConnectionAsyncTask.java:
import android.app.Activity;
import android.os.AsyncTask;
import java.util.List;
public class ConnectionAsyncTask extends AsyncTask<String,String,String> {
Activity activity;
private EventListener listener;
public ConnectionAsyncTask(Activity activity) {
this.activity=activity;
}
@Override
protected String doInBackground(String... params) {
String content =HttpManager.getData(params[0]);
return content;
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String s) {
List<Country> countries= CountryJasonParser.getObjectFromJason(s);
if (countries != null) {
String s1 = "";
s1=s1+"\n"+"" + countries.get(0).getDes() ;
//i want to call DisplyOnTextView(s1)
}
}
}
countryfragment.java:
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
public class countryfragment extends android.support.v4.app.Fragment implements NavigationView.OnNavigationItemSelectedListener {
TextView desc;
public countryfragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ConnectionAsyncTask connectionAsyncTask = new ConnectionAsyncTask(getActivity());
//This is a server which contains data to load it connectionAsyncTask.execute("http://www.mocky.io/v2/570d3677270000f600dc29b6");
View view = inflater.inflate(R.layout.fragment_countryfragment,container,false);
desc = (TextView) view.findViewById(R.id.desc);
return view;
}
public void DisplyOnTextView(String s) {
desc.setText(s);
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
return false;
}
}
<小时/>
结果必须是:在 TextView 上显示数据。
最佳答案
试试这个:
public class ConnectionAsyncTask extends AsyncTask<String,String,String> {
Activity activity;
private EventListener listener;
private TextView mTextView
public ConnectionAsyncTask(Activity activity, TextView txt) {
this.activity=activity;
this.mTextView=txt;
}
@Override
protected String doInBackground(String... params) {
String content =HttpManager.getData(params[0]);
return content;
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String s) {
List<Country> countries= CountryJasonParser.getObjectFromJason(s);
if (countries != null) {
String s1 = "";
s1=s1+"\n"+"" + countries.get(0).getDes() ;
mTextView.setText(s1);
}
}
}
然后
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_countryfragment,container,false);
desc = (TextView) view.findViewById(R.id.desc);
ConnectionAsyncTask connectionAsyncTask = new ConnectionAsyncTask(getActivity(), desc);
connectionAsyncTask.execute("http://www.mocky.io/v2/570d3677270000f600dc29b6");
return view;
}
关于java - 如何从java类中调用fragment方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36966445/
我是一名优秀的程序员,十分优秀!