setText in vista personalizzata
-
26-10-2019 - |
Domanda
Ho creato una classe personalizzata da un tutorial on-line. Funziona bene, ma quello che voglio fare è fare in modo che io possa impostare il testo della vista, proprio come farebbe con qualsiasi altro punto di vista. Come è che compiuto. Ecco l'XML per la visualizzazione personalizzata ??p>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">
<ImageView
android:id="@+id/file_image_holder"
android:layout_width="110dip"
android:layout_height="110dip"
android:src="@drawable/pdf_icon" />
<TextView
android:id="@+id/file_name_holder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="File Name Here" />
</LinearLayout>
Quello che sto cercando di realizzare è questo
FileView fileView = new FileView(this)
fileView.setText("text")
Soluzione
TextView filename = (TextView)findViewById(R.id.file_name_holder);
filename.setText("someFile.exe");
In un'altra nota ... è possibile utilizzare suggerimento per offrire agli utenti un testo in grigio pronta che non dovranno cancellare quando si entra in un nome di file. Nel vostro XML sostituire android:text
con android:hint
per il vostro TextView.
Altri suggerimenti
sostituire "File Name Here" con "testo che si desidera" o @ string / name_of_string_in_string.xml
o il modo in cui Java, che qualcun altro ha risposto
qui no_internet è include visualizzazione XML. nel includono vista contenere vista del testo. è possibile impostare il testo in include vista testo personalizzato come ....
no_internet = view.findViewById(R.id.no_internet);
((TextView) no_internet).setText(R.string.no_internet_connection);
I non ha ancora capito il vostro requisito pieno. Ma se si desidera creare una vista personalizzata le seguenti cose che si dovrebbe fare:
Per esempio: Se si desidera creare un pulsante utilizzando il layout personalizzato, quindi
-
Creare una classe che estende un layout.
public class MyCustomView extends RelativeLayout { private Button customBtn; public MyCustomView(Context context, AttributeSet attrs) { super(context, attrs); init(context); } private void init(Context context) { customBtn = new Button(context); customBtn.setText("Button"); RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT); buttonParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT); buttonParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); addView(customBtn, buttonParams); } }
Se si desidera aggiungere eventuali ascoltatori, implementare ed eseguire l'override di esso.
2.Mention questo layout personalizzato all'interno della vostra xml come: (il mio MyCustomView è presente nella confezione com.android)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent" >
<com.android.MyCustomView android:background="@android:color/white" android:id="@+id/myLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:layout_centerHorizontal="true" android:clickable="true" />
</RelativeLayout>
Si prega di provarlo, se lo richiedono.