如何从getDataForID(Integer.toString(1))获取数据?通过从displayData类调用相同的getDataForID方法?
我想重用相同的方法并获得结果.
将相同的方法复制并粘贴到其他活动类中没有任何意义.然后将有相同的代码重复两次.
这是我的displayData.class
public class displayData extends AppCompatActivity { Detail reqDetail; String BASE_URL = ""; TextVIEw name; ImageVIEw image; @OverrIDe protected voID onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.display_data); name = (TextVIEw) findVIEwByID(R.ID.name); image = (ImageVIEw)findVIEwByID(R.ID.image); public voID getDataForID(final String ID) { APIInterface APIInterface = apiclient.getAPIInterface(); Call<MyResponse> call = APIInterface.getResponse(); call.enqueue(new Callback<MyResponse>() { @OverrIDe public voID onResponse(Call<MyResponse> call, Response<MyResponse> response) { if (response.body() != null) { MyResponse myResponse = response.body(); List<Detail> details = myResponse.getDetails(); for (Detail d : details) { if (d.getID().equals(ID)) { reqDetail = d; name.setText(reqDetail.getname()); Picasso.with(displayData.this) .load(reqDetail.getname()) .placeholder(R.mipmap.ic_launcher) .error(R.mipmap.ic_launcher) .into(image); } } } } @OverrIDe public voID onFailure(Call<MyResponse> call, Throwable t) { } }); }
这是我的SecondData类,我想在其中通过重用相同的方法来显示displayData的相同数据响应
public class SecondData extends AppCompatActivity { Detail reqDetail; String BASE_URL = ""; TextVIEw name; ImageVIEw image; @OverrIDe protected voID onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.second_main); name = (TextVIEw) findVIEwByID(R.ID.name); image = (ImageVIEw)findVIEwByID(R.ID.image); }}
解决方法:
创建一个类来进行这样的改造调用
public class SampleClass {private DataInterface mListener;public SampleClass() { super();}public voID getDataForID(final String ID) { APIInterface APIInterface = apiclient.getAPIInterface(); Call<MyResponse> call = APIInterface.getResponse(); call.enqueue(new Callback<MyResponse>() { @OverrIDe public voID onResponse(Call<MyResponse> call, Response<MyResponse> response) { if (response!=null && response.body() != null && mListener != null) { mListener.responseData(response.body()); } } @OverrIDe public voID onFailure(Call<MyResponse> call, Throwable t) { } });}public voID setonDataListener(DataInterface Listener) { mListener = Listener;}public interface DataInterface { voID responseData( MyResponse myResponse );}}
然后在您的活动中像这样调用课程
SampleClass sampleClass = new SampleClass();sampleClass.setonDataListener(new SampleClass.DataInterface() { @OverrIDe public voID responseData(MyResponse myResponse) { } });sampleClass.getDataForID("UR ID");
同样在您的课程中,将ID存储为私有成员变量
private Integer YOUR_ID;
然后在获取结果时,将结果ID与该ID进行比较
List<Detail> details = myResponse.getDetails(); for (Detail d : details) { if (d.getID().equals(YOUR_ID)) { reqDetail = d; name.setText(reqDetail.getname()); Picasso.with(displayData.this) .load(reqDetail.getname()) .placeholder(R.mipmap.ic_launcher) .error(R.mipmap.ic_launcher) .into(image); } }
总结 以上是内存溢出为你收集整理的java-改造方法响应重用到另一个活动中全部内容,希望文章能够帮你解决java-改造方法响应重用到另一个活动中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)