相关疑难解决方法(0)

如何使用片段中的XML onClick处理按钮单击

Pre-Honeycomb(Android 3),每个Activity都已注册,可通过onClickLayout的XML中的标签处理按钮点击:

android:onClick="myClickMethod"
Run Code Online (Sandbox Code Playgroud)

在该方法中,您可以使用view.getId()和switch语句来执行按钮逻辑.

随着Honeycomb的推出,我将这些活动分解为碎片,可以在许多不同的活动中重复使用.按钮的大部分行为都是与Activity无关的,我希望代码驻留在Fragments文件中,而不使用OnClickListener为每个按钮注册的旧(pre 1.6)方法.

final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Perform action on click
    }
});
Run Code Online (Sandbox Code Playgroud)

问题是,当我的布局被夸大时,它仍然是接收按钮点击的托管活动,而不是单个碎片.对两者都有好的方法

  • 注册片段以接收按钮点击?
  • 将Click中的click事件传递给它们所属的片段?

xml android button android-fragments

425
推荐指数
8
解决办法
24万
查看次数

Android Fragment onClick按钮方法

我正在尝试在我的onClick(View v)XML中调用该方法,但不能与Fragment一起使用.这是错误.

01-17 12:38:36.840: E/AndroidRuntime(4171): java.lang.IllegalStateException: 
Could not find a method insertIntoDb(View) in the activity class main.MainActivity 
for onClick handler on view class android.widget.Button with id 'btn_conferma'
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

public void insertIntoDb(View v) {
...
} 
Run Code Online (Sandbox Code Playgroud)

xml代码

<Button
        android:id="@id/btn_conferma"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="0.0dip"
        android:layout_height="45dp"
        android:layout_marginLeft="2dp"
        android:layout_weight="1.0"
        android:background="@drawable/bottoni"
        android:gravity="center_horizontal|center_vertical"
        android:onClick="insertIntoDb"
        android:text="SALVA"
        android:textColor="#ffffff"
        android:textSize="16sp" />
Run Code Online (Sandbox Code Playgroud)

android view click button

85
推荐指数
4
解决办法
25万
查看次数

Android用另一个片段替换当前片段

我刚开始使用HoneyComb的片段设计.我创建了两个片段.当我单击左侧片段中的按钮时,会在右侧创建一个新片段.同时当我点击右边片段中的一个按钮时(即我下面代码中的DetialsFragment应该被另一个片段替换.main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
    <fragment class="com.fragment.example.Titles"
        android:id="@+id/titles" android:layout_weight="1"
        android:layout_width="0px"
        android:layout_height="match_parent" />
    <FrameLayout android:id="@+id/details" android:layout_weight="1"
        android:layout_width="0px"
        android:layout_height="match_parent" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

FragmentExample.java

public class FragmentExample extends Activity {
/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
Run Code Online (Sandbox Code Playgroud)

Titles.java

public class Titles extends Fragment {
    public FragmentTransaction ft;
    @Override
    public View onCreateView(LayoutInflater inflater,
        ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.main1, null);
        Button button1 = (Button)v.findViewById(R.id.button1);
        button1.setText("santhosh"); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-3.0-honeycomb

48
推荐指数
2
解决办法
13万
查看次数