簡體   English   中英

Android Studio TextViews onClick都執行相同的操作,如何解決?

[英]Android Studio TextViews onClick all perform the same action, how do I fix it?

我有這個功能,應該創建一個具有唯一ID的TextViews數組。

每個TextView應該執行唯一的操作,但是,當單擊其中任何一個時,它們都將執行最后一個TextView的功能。

(即,他們中的任何人都以我設置的方式將9附加到最后一個TextView上)您知道為什么這樣做以及如何解決它嗎?

任何幫助將不勝感激。

//Code:   
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_what_can_imake);

        int textViewCount = 10;

        TextView[] textViewArray = new TextView[textViewCount];
        RelativeLayout myLayout = (RelativeLayout) findViewById(R.id.myLayout);
        for(int i = 0; i < textViewCount; i++) {
            textViewArray[i] = new TextView(this);
            textViewArray[i].setText("Title"+Integer.toString(i));
            textViewArray[i].setPadding(8,8+50*i,8,0);
            textViewArray[i].setId(i);
            LayoutParams myTitleDimensions = new RelativeLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);


            textViewArray[i].setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    int myId = v.getId();
                    ((TextView) v).append(Integer.toString(myId));
                }
            });
            myLayout.addView(textViewArray[i],myTitleDimensions);
        }

    }

您正在使用其他paddingTop垂直布置TextView

textViewArray[i].setPadding(8,8+50*i,8,0);

這使TextView在視覺上彼此分離,但是實際上它們都是重疊的,第二個重疊了第一個,第三個重疊了第二個,依此類推。最后,第9個重疊了所有,所以無論您使用哪種文本單擊,您實際上單擊了第九個。

要解決此問題,您應該更改TextView的布局方式。

例如,使用RelativeLayout.addRule(int verb, int anchor)

RelativeLayout.LayoutParams myTitleDimensions = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
if (i > 0) {
    myTitleDimensions.addRule(RelativeLayout.BELOW, i - 1);
}

順便說一句, 0不是有效的ID,因此您的第一個TextView仍將與第二個TextView重疊,只需稍微更改生成ID的方式即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM