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