안드로이드 일기예보 제작 - 견적 표시

성명 표시 기능은 날씨 정보 표시 기능과 유사하며, 네트워크가 있는 경우 인터페이스를 호출하여 얻은 정보를 지정된 영역으로 다시 전달하여 표시합니다. 이 기능은 초기 인터페이스에 있으며, 인터페이스가 전환되거나 해당 아이콘을 클릭하면 명령문이 변경됩니다. 구체적인 작업 과정은 그림에 나와 있습니다.

견적은 날씨 정보와 동일한 인터페이스에 표시되며, 구현 방식은 날씨 정보, 도시 정보 획득과 ​​유사하며, MainActivity에서 변수 및 컨트롤을 정의한 후(그림 3-37) 네트워크에 접근하여 명세서를 획득하고 전달하는 메소드를 정의합니다. 인터페이스에 표시합니다.

그림 3-37 변수 및 컨트롤 정의

(1)인터넷 접속

먼저 그림 3-37과 같이 명령문을 얻기 위해 네트워크에 액세스하는 getDataFromServer() 메서드를 구현합니다.

그림 3- 38 getDataFromServer()

getDataFromServer()가 URL에 액세스하는 방식은 openConnection()이 날씨 정보에 액세스하는 방식과 동일합니다.(자세한 내용은 그림 3-2 참조) 다음 두 가지 점에서 디자인상의 차이점이 있습니다.

1. 접근 정보를 저장하는 다양한 유형의 객체

openConnection()에서는 String(result)을 사용하고, getDataFromServer()에서는 StringBuilder(stringBuilder)를 사용합니다. 둘 다 문자열 유형 데이터를 수신하고 처리하는 데 사용되지만, String이 문자열을 접합할 때 먼저 메모리에 각 문자열을 생성한 다음 문자열을 접합하여 새 문자열을 얻고 이를 결과로 반환합니다. StringBuilder는 동적 객체이고 그것이 나타내는 문자열은 가변적이기 때문에 문자열을 이어붙일 때 StringBuilder 객체 뒤에 이어붙일 문자열을 직접 추가하면 되며, 문자열을 다른 곳에 저장할 필요가 없습니다. 따라서 StringBuilder는 String에 비해 메모리 자원을 절약하고 접합 효율성이 더 높아집니다. StringBuilder 객체를 이용하여 splicing 후 반환되는 값도 StringBuilder 타입인데, 이 경우 String()으로 변환하기 위해서는 toString이 필요합니다.

2. 방문 후 처리방법

날씨 정보에 접근하는 OpenConnection()은 접근이 완료된 후 결과를 반환한 후 함수를 종료하고, 인용문에 접근하는 getDataFromServer()는 close()를 사용하여 날씨 정보를 얻은 후 입력 스트림(inputStream)과 문자 스트림(bufferedReader)을 닫습니다. 결과에 액세스하고 이를 반환하여 관련 시스템 리소스를 해제하고, URL 연결을 끊기 위해 연결 해제()를 사용합니다. close()와 Disconnect()를 확실하게 호출하기 위해 try catch finally 문을 사용했으며, try 문이나 catch 문에서 예외가 발생하더라도 finally에 있는 문이 실행됩니다.

(2) 명령문이 인터페이스로 전송됩니다.

명령문 정보 전달은 그림 3-40과 같이 데이터를 초기화하는 initData() 함수에서 이루어지며 익명의 내부 클래스인 new Thread(new Runnable() {}) 메소드를 사용한다. Thread 생성자는 Runnable을 구현하는 클래스의 객체 참조입니다. New Runnable() {public void run() {...}}에는 이 클래스를 정의하고 이 클래스를 인스턴스화하는 객체가 포함되어 있습니다. 키-값 쌍을 사용하여 클래스에서 액세스한 정보는 번들에 저장된 다음 메시지로 캡슐화되어 기본 스레드로 전송됩니다. 구체적인 코드는 그림 3-39에 나와 있습니다.

그림 3- 39 initData()

데이터가 메인 스레드로 전송된 후, 획득한 데이터를 인터페이스로 전송하기 위해 메인 스레드에서 handlerMessage()가 다시 호출됩니다. 먼저 전송된 정보 코드가 미리 설정된 정보 코드와 동일한지 판단하여 획득한 데이터가 시스템에 필요함을 나타내며, 다음으로 메시지 객체로부터 데이터를 수신하여 데이터에 저장하고, 데이터는 인터페이스의 지정된 위치로 전송됩니다. 그림 3-40과 같습니다.

그림 3- 40 핸들메시지()

사용자가 표시된 데이터를 변경하려면 오른쪽 하단에 있는 아이콘을 클릭하면 됩니다. 시스템은 아이콘에 대한 모니터링 버튼을 설정합니다. 아이콘을 클릭하면 데이터를 초기화하는 initDate() 함수가 호출되어 명령문을 대체합니다. .

 

Supongo que te gusta

Origin blog.csdn.net/weixin_58963766/article/details/130567891
Recomendado
Clasificación