0

如果有人能夠爲我提供解決方案,非常感謝您的幫助。我有兩個問題:如何控制以編程方式生成的TextViews

1-我有一個按鈕,每次單擊它時都會生成Params和TextView。我將變量設置爲textview「textnew」和param「lptxt」。但是,我只能控制最後生成的文本視圖,字體,字體大小,刪除..等等。有沒有一種方法來設置自動ID,我可以在其他方法回憶它?我試過isSelected,isTouched,hasFocus和其他,但沒有任何工作。

2-如何在設置邊框後將我的TextView重新設置爲它的樣子?假設我已經將邊框設置爲10dp半徑和紅色的TextView。但是當觸摸TextView時,邊界將變爲1dp半徑,如繪製/角落中所述。

謝謝

這裏是我的代碼

RelativeLayout rel0 = (RelativeLayout) findViewById(R.id.rel0); 

的OnClick:

textnew = new TextView(MainActivity.this); 
    lptxt = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT, 
            RelativeLayout.LayoutParams.WRAP_CONTENT); 
          lptxt.addRule((RelativeLayout.CENTER_HORIZONTAL)); 
          lptxt.addRule((RelativeLayout.CENTER_VERTICAL)); 
          lptxt.addRule((RelativeLayout.CENTER_IN_PARENT)); 
          textnew.setLayoutParams(lptxt); 
          rel0.addView(textnew); 
          rel0.bringChildToFront(textnew); 
          rel0.bringToFront(); 
          textnew.setText(edittextdialog.getText().toString()); 

OnTouch:

case MotionEvent.ACTION_DOWN: { 
         textnew.setBackgroundResource(R.drawable.borders); 
         textnew.isSelected(); 

         break; 
        } 

BTW我工作的API 11

謝謝你在前進,

+0

您可以在TextView中https://developer.android.com/reference/android/view/View.html#generateViewId() – Sanny

+0

TextView是被編程的方式創建集ID。意思是我想要按鈕來創建文字瀏覽,但如果我設置了ID,它將是一個。是的,我可以記得它,但它只會是一個。 – Badee

+0

該解決方案適用於API 17.我在11. thanx雖然 – Badee

回答

0

我找到了一個解決此問題的:

我充上ACTION_UP,在那裏我可以改變文字大小,顏色,字體的視圖,甚至刪除它。這些更改直接發生在具有問題的選定文本視圖上。

感謝Thanx傢伙。

這裏是我的代碼:

case MotionEvent.ACTION_UP: { 

    LayoutInflater lifirst = LayoutInflater.from(MainActivity.this); 
    View lifirstpv = lifirst.inflate(R.layout.infirst, null); 
    final TextView editfirst = TextView)lifirstpv.findViewById(R.id.editfirst); 
    final TextView deletefirst = (TextView)lifirstpv.findViewById(R.id.deletefirst); 

    pop = new PopupWindow(
lifirstpv,RelativeLayout.LayoutParams.WRAP_CONTENT, 
RelativeLayout.LayoutParams.WRAP_CONTENT); 

    pop.setOutsideTouchable(true); pop.setTouchable(true); 
    deletefirst.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
    rel0.removeView(teext); 
    pop.dismiss(); 
    return true; 
        } 
      }); 
0
  1. 使用setTagTextView並使用findViewWithTag得到你需要的視圖。

  2. 重置一切回ACTION_UP

0

例如,生成5 TextView

List<TextView> list = new ArrayList<TextView>(); 
for(int i=0;i<5;i++){ 
    TextView textView = generateTextView(); 
    list.add(textView); 
    rel0.addView(textView); 
} 

所述方法產生的TextView

public TextView generateTextView(){ 
    TextView textnew = new TextView(MainActivity.this); 
    ... 
    return textnew; 
} 

然後就可以控制在所述textviews列表

如果您使用相同的lptxt layoutparams,則textview使用的是relativelayoutparams。該textviews將是相同的位置,你只能看到最後一個

+0

這是一個很好的想法,但我不想使用列表,我不想限制textviews的用戶。另外,我正在使用textviews生成layoutparams。所以,每個textview都有自己的layoutparam。我可以看到並移動每一個,儘可能地。但我只能刪除或打印最後一個。從我的編碼中,我錯過了什麼? – Badee

+0

@Badee可以顯示更多有關'刪除或字體'的代碼嗎? – tesla1984

+0

刪除我使用rel0.removeView(textnew); – Badee