如何在android中的按钮中存储元数据?

时间:2013-07-28 18:35:49

标签: android events button onclick metadata

在我的Android应用程序中,当我使用java代码创建一个按钮时,我希望能够在其中存储一个字符串,然后在按下它时,再次获取该字符串。

有人能告诉我怎么做吗?

谢谢,

2 个答案:

答案 0 :(得分:9)

您可以使用View.setTag()View.getTag()来存储和检索String。因此,当您按下按钮时,您可能会使用方法onClick(View v)回调OnClickListener,因此您可以使用v.getTag()在那里检索字符串。

答案 1 :(得分:0)

首先在xml文件中创建按钮(假设为activity_main.xml)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    tools:context=".MainActivity">

        <Button
            android:id="@+id/btnMessage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="onClick"
            android:text="Click" />

</LinearLayout>

然后,您可以从自己的活动中找到它并从中添加/检索信息。

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // find button by id
        Button btn = (Button)findViewById(R.id.btnMessage);

        // enclose secret message
        btn.setTag("Bruce Wayne is Batman");
    }

    // this function is triggered when the button is pressed
    public void onClick(View view) {

        // retrieve secret message
        String message = (String) v.getTag();

        // display message in the console
        Log.d("Tag", message);
    }
}    

此方法可用于隐藏信息(例如数据库密钥或超级英雄的秘密身份)。