我的问题是我的活动中的Button需要单击两次以使代码执行以onClick方法编写的代码。 当我共享我的活动代码和布局文件代码时。请指导我解决问题。
活动(片段)
public class SelfFamilyInfoActivity extends Fragment {
Button btnUpdateFamily;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.self_mem_details_family_info,
container, false);
try {
btnUpdateFamily = v.findViewById(R.id.btnUpdateFamily);
btnUpdateFamily.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "Button Clicked",
Toast.LENGTH_SHORT).show();
}
});
} catch (Exception e) {
e.printStackTrace();
}
return v;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
布局文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="vertical">
<LinearLayout
android:id="@+id/llLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="12dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:gravity="center">
<Button
android:id="@+id/btnUpdateFamily"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="@drawable/button_background"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="Update Family Info"
android:textColor="@color/buttonTextColorWhite"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</android.support.v4.widget.NestedScrollView>
在另一个MainActivity中初始化此片段时。
答案 0 :(得分:1)
对于片段,最好使用<?php
namespace App\EventSubscriber;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\Security\Http\SecurityEvents;
class LoginEventSubscriber implements EventSubscriberInterface
{
protected $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
public static function getSubscribedEvents()
{
return [
// Subscribe to login event - fire 'storeLastLogin' method
SecurityEvents::INTERACTIVE_LOGIN => 'storeLastLogin'
];
}
public function storeLastLogin(InteractiveLoginEvent $event)
{
// Retrieve the User entity from token
$user = $event->getAuthenticationToken()->getUser();
// It means that you have a 'lastLogin' property in your User entity
$user->setLastLogin(new \DateTime());
$this->em->persist($user);
$this->em->flush();
}
}
方法中的全视图。可能尚未准备好视图,但您开始单击。并且您使用onViewCreated
块在日志中看到任何异常了。我不确定。但是您可以使用try catch
方法尝试点击侦听器。
已更新 尝试使用此代码。此代码在我的部分中起作用
onViewCreated