Home > OS >  Why SetText not work in OnClick() function
Why SetText not work in OnClick() function

Time:12-22

I just know how to use Android Studio Code Yesterday. And I got a problem when I need to Change the text when clicking a button.

But when I text, Its don't work.

Here is my code:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        View bubbleView = getLayoutInflater().inflate(R.layout.bubble_view, null);

        Button bubble = (Button) findViewById(R.id.start_bubble);
        bubble.setOnClickListener(this);// calling onClick() method

        Button predict = (Button) bubbleView.findViewById(R.id.predict);
        predict.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.start_bubble:
                startService(new Intent(getApplicationContext(), SimpleService.class));
            case R.id.predict:
                View bubbleView = getLayoutInflater().inflate(R.layout.bubble_view, null);
                TextView predict_text = (TextView) bubbleView.findViewById(R.id.predict_text);
                predict_text.setText("Hi"); // <--- It don't work :(
            default:
                break;
        }
    }
}

[EDIT] [] Add some .XML file Here is my activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@ id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context="com.siddharthks.sampleapp.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Project KHKT"
        android:textColor="#AA000000"
        android:textSize="21sp" />

    <Button
        android:id="@ id/start_bubble"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Paste and Predict"
        android:textSize="18sp" />
</LinearLayout>

and here is my bubble_view.xml, its just for a

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="16dp"
            android:paddingTop="16dp"
            android:paddingEnd="16dp"
            android:text="Project KHKT"
            android:textColor="#AA000000"
            android:textSize="21sp" />

        <Button
            android:id="@ id/predict"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Paste and Predict"
            android:textSize="18sp" />

        <TextView
            android:id="@ id/predict_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="16dp"
            android:paddingTop="16dp"
            android:paddingEnd="16dp"
            android:textColor="#AA000000"
            android:textSize="21sp" />


    </LinearLayout>
</ScrollView>

Do you have any suggested for me ?

CodePudding user response:

Try This it will add Your bubble view in your parent and you can perform any action on that particular Layout from main Layout.

public class MainActivity extends AppCompatActivity  {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


LinearLayout parent = findViewById(R.id.activity_main);        //parent layout.
        View childView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.bubble_view,parent,false);
            
        parent.addView(childView);
       


        Button predict = (Button) childView.findViewById(R.id.predict);


        TextView predict_text = (TextView) childView.findViewById(R.id.predict_text);

        

        predict.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                predict_text.setText("Hi"); // <--- It don't work :(
            }
        });
}
}

CodePudding user response:

Add break to the each case statement in the switch.

  • Related