我遇到了一个问题,我需要使用(main_ac)从“主要活动”中运行(不要打开aka intent)一个活动“cal.class”(带有cal.xml)。 xml)
我创建了一个“calFragment.class”(链接到cal.xml)并在其中实现了片段(main_ac.xml)
片段正在工作,“cal.class”完美地工作(当自己运行时也就是单独的意图)
我正在尝试运行活动“cal.class”(在后台)以便将信息输出到main_ac.xml或cal.xml,因为我有一个cal.xml的片段,它应该输出到main_ac.xml
所以我也尝试创建一个后台服务,该服务正在被调用但未在后台运行该活动 我的第一个版本:
在“cal.class”中创建一个具有
的On Click方法"setContentView(R.layout.cal);"
然后尝试:
" setContentView(R.layout.activity_main);"
但是无法识别鼠标点击。
我的第二个版本:
在主要活动中创建一个“On Click”,它确实被识别,然后我为它创建了一个var:
cal calander = new cal();
calander.getresultsofAPI();
但是这会导致空指针异常。
现在,当它在自己的意图工作中运行“cal.class”时,
我只需要在“On Click”上运行(在后台)并输出“main_act.xml”或“cal.xml”中的值
我也尝试过创建后台服务来在后台运行活动,但我也没有运气。该服务获取调用并运行,但它不运行“cal.class”
我一直在摸不着头几天,一直在网上寻找解决方案。
非常感谢任何反馈
谢谢:)
这是简化版本:
Cal Fragment Class:
public class FragmentCalander extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.calander, container, false);
System.out.println("clanader Fragment loaded");
return view;
}
}
Cal Activity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//code running, example :
// protected void getResultsFromApi() {}, etc..
}
主要活动:
findViewById(R.id.fragmentcalander).setVisibility(View.VISIBLE);
Intent intent = new Intent(this, service.class);
startService(intent);
ImageButton refreashicon = (ImageButton)findViewById(R.id.refreashevents) ;
refreashicon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
final cal calander = new cal();
calander.getResultsFromApi();
// or
Intent intent = new Intent(this, service.class);
startService(intent);
// however this service intent can not work inside the onClick, only outside it
}
});
服务活动:
public class service extends Service {
cal calander = new cal();
private final IBinder mBinder = new LocalBinder();
public class LocalBinder extends Binder {
service getService() {
return service.this;
}
}
public int onStartCommand(Intent intent, int flags, int startId) {
System.out.println("new service started");
calander.getResultsFromApi();
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
}
主Activity.xml:
<fragment
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:name="geepool.smart_wardobe.FragmentCalander"
android:id="@+id/fragmentcalander"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/drawer_layout"
android:layout_alignEnd="@+id/drawer_layout"
android:layout_above="@+id/start" />
如果你有任何想法,我会爱来听他们,这现在正在煎我的大脑