使用Onclick android

时间:2016-11-11 10:53:20

标签: android android-activity onclick fragment

我遇到了一个问题,我需要使用(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”或“c​​al.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" />

如果你有任何想法,我会来听他们,这现在正在煎我的大脑

0 个答案:

没有答案