diff --git a/testing/AIFragment.java b/testing/AIFragment.java new file mode 100644 index 0000000..3a99175 --- /dev/null +++ b/testing/AIFragment.java @@ -0,0 +1,74 @@ +package com.example.doitnow; + +import android.os.Bundle; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.ScrollView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +public class AIFragment extends Fragment { + + private EditText userInput; + private Button sendButton; + private LinearLayout chatContainer; + private ScrollView scrollView; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_ai, container, false); + + userInput = view.findViewById(R.id.user_input); + sendButton = view.findViewById(R.id.send_button); + chatContainer = view.findViewById(R.id.chat_container); + scrollView = view.findViewById(R.id.scrollView); + + sendButton.setOnClickListener(v -> { + String inputText = userInput.getText().toString().trim(); + if (!inputText.isEmpty()) { + addMessage(inputText, 0xFFE6D6F3,true); // 使用者 + addMessage("暫未接入 AI", 0xFFF0F0F0,false); // AI + userInput.setText(""); + scrollToBottom(); + } + }); + + return view; + } + + private void addMessage(String text, int backgroundColor,boolean alignRight) { + TextView messageView = new TextView(getContext()); + messageView.setText(text); + messageView.setTextSize(16); + messageView.setPadding(20, 12, 20, 12); + messageView.setBackgroundColor(backgroundColor); + + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT); + params.setMargins(0, 8, 0, 8); + if (alignRight){ + params.gravity= Gravity.END; + }else{ + params.gravity=Gravity.START; + } + messageView.setLayoutParams(params); + + chatContainer.addView(messageView); + } + + private void scrollToBottom() { + scrollView.post(() -> scrollView.fullScroll(View.FOCUS_DOWN)); + } +}