You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.5 KiB
75 lines
2.5 KiB
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));
|
|
}
|
|
}
|