Note: If getSupportFragmentManager () is set to getFragmentManager (), an error will occur.
HogeActivity.java
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Display a dialog
DialogFragment dialog = new DialogFragment();
//View getSupportFragmentManager()Is fixed, sample is an identification tag
dialog.show(getSupportFragmentManager(), "sample");
}
});
--Both can be called from Activity. --Dialog fragment: High degree of freedom in design and processing. --Alert dialog: Design is possible by applying Style.xml. --Alert dialog: It's OK to write in the method chain or divide the process by builder. ~, Your favorite problem.
strings.xml
<resources>
<string name="error_message">Please enter within 20 characters.</string>
</resources>
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Resources res = getResources();
TextView textVIew = findViewById(R.id.text);
textVIew.setText(res.getString(R.string.error_message));
}
}
--If numColumns = "10" is not specified, only one column will be displayed. ――10 means 10 columns.
hoge.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">
<GridView
android:id="@+id/grid_view"
android:layout_width="300dp"
android:layout_height="242dp"
android:layout_gravity="center_vertical"
android:numColumns="10"></GridView>
</LinearLayout>
--An error that occurs when you run in a strange place such as drawable or xml. --You can solve this problem by respecifying the activity that starts first in the frame on the left side of Run "▶" at the top of Android Studio.
--An error that occurred while using Adapter to put elements in GridView. --GetView was called only 3 times because there were only 3 items in the GridView area. --The solution is to maximize the GridView area or reduce the size of the item.
--The contents of ViewHolder setTag / getTag can be referenced by other classes (such as OnItemClickListener of Fragment). --If you don't use Tag, you can only call the method of that View in Adapter. --Hereafter, kotlin sample code
Adapter.java
/**
*View drawing method
*/
override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View {
val itemLayoutView = p1 ?: View.inflate(this.context, R.layout.item_custom_view, null)
var viewHolder = itemLayoutView.tag
if (viewHolder == null) {
viewHolder = ViewHolder()
viewHolder.customView = itemLayoutView.custom_view as CustomView
(itemLayoutView.custom_view as CustomView).initView(
this.values[p0].index()
)
itemLayoutView.tag = viewHolder
}
return itemLayoutView
}
/**
*Viewholder class
*/
class ViewHolder {
lateinit var customView: CustomView
}
-[=] Is how to write when using type inference. ――When assigning immediately, use [=] because type inference is possible.
(Example)
main.java
//java
int number = 3;
//kotlin
var number = 3
-[:] I don't plan to substitute it immediately, and I use it when I want to substitute it someday, so I can't type infer.
(Example)
main.java
//java
int number;
number = 3;
//kotlin
lateinit var number:Int
number = 3
-? Is basically not used. It's troublesome because there are more branches. -? Means to allow null. --It may be judged whether the return value of the method is nullOK.
Recommended Posts