这里我添加了Java和Xml文件,当用户单击按钮时,我只想在其中显示Toast。
这只是检查Fragment是否正常工作。
在此,onClickListener在Fragment中对我不起作用。我尝试时,甚至TextView上的setText也无法正常工作。我认为组件存在一些问题,或者java和xml文件之间的连接存在一些问题
Setting.java
package com.example.dell.jsonexp;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class setting extends Fragment {
BackgroundTask b;
String e;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View RootView = inflater.inflate(R.layout.setting, container, false);
final Button logout= (Button) RootView.findViewById(R.id.logout);
logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(),"Button Pressed",Toast.LENGTH_LONG).show();
}
});
return inflater.inflate(R.layout.setting, container, false);
}
}
setting.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<Button
android:id="@+id/logout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="50dp"
android:text="Logout" />
</RelativeLayout>
答案 0 :(得分:2)
您正在将点击侦听器设置为一个从未显示的按钮。
您需要返回rootView而不是夸大其他视图。
return rootView;
答案 1 :(得分:1)
在onCreateView()
中,您无法使用Override
方法访问视图组件,而您必须使用onViewCreated()
package com.example.dell.jsonexp;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class setting extends Fragment {
BackgroundTask b;
String e;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.setting, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Button logout= (Button) view.findViewById(R.id.logout);
logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(),"Button Pressed",Toast.LENGTH_LONG).show();
}
});
}
}
方法。
请按如下所示更新您的代码。
Pass{
Name "OUTLINE"
Cull Off
ZWrite Off
ZTest Always
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 2.0
#pragma multi_compile_fog
fixed4 frag(v2f IN) : SV_Target
{
fixed4 c = tex2D(_MainTex, IN.texcoord) * IN.color;
if (c.a > _Cutoff) {
float totalAlpha = 1.0;
[unroll(16)]
for (int i = 1; i < _OutlineSize + 1; i++) {
fixed4 pixelUp = tex2D(_MainTex, IN.texcoord + fixed2(0, i * _MainTex_TexelSize.y));
fixed4 pixelDown = tex2D(_MainTex, IN.texcoord - fixed2(0, i * _MainTex_TexelSize.y));
fixed4 pixelRight = tex2D(_MainTex, IN.texcoord + fixed2(i * _MainTex_TexelSize.x, 0));
fixed4 pixelLeft = tex2D(_MainTex, IN.texcoord - fixed2(i * _MainTex_TexelSize.x, 0));
totalAlpha = totalAlpha * pixelUp.a * pixelDown.a * pixelRight.a * pixelLeft.a;
}
if (totalAlpha == 0) {
c.rgba = fixed4(0.4, 1, 1, 1);
}
else
c.rgba = fixed4(0.5, 0.5, 0.5, .5);
}
c.rgb *= c.a;
return c;
}
ENDCG
}
谢谢!
答案 2 :(得分:0)
您需要返回
return RootView;
,对于 Toast ,您必须写
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getContext(), "Whatever you want here", Toast.LENGTH_SHORT).show();
}
});