2011-12-14 6 views
3

http 연결에서 2 개의 문자열을 가져옵니다. 예 : 이름 및 설명을 입력하고 두 개의 다른 배열에 저장합니다. 배열은 다른 클래스의 클래스에서 사용됩니다. 나는 그들 각각 (searchName과 searchDesc)을 검색하는 2 가지 방법을 만들었다. 모든 것은 잘 작동하지만 나는 그렇게하지 않을 때 더 효율적으로 만들고 싶습니다.Android - 메서드에서 여러 값 반환

한 가지 방법으로 연결을 만들고 개별 배열에 내용을 읽고 저장하고 2 개의 배열을 반환하고 싶습니다.

다른 말로하면, 앱이 단지 두 번 (현재 코드) 대신에 한 번만 HTML 코드를 통해 연결/읽기를 만들길 원합니다. 각각 1 개의 값만 반환하는 2 개의 메서드를 만드는 대신 2 개의 값을 반환하는 메서드가 필요합니다. 그것은 가능하고 어떻게?

+0

이 코드는 사용자를 돕기 위해 사용될 수 있습니다. http://stackoverflow.com/questions/5122913/java-associative-array – Naterade

+0

가능한 복제본 [자바 메서드에서 여러 객체를 반환하는 방법?] (http://stackoverflow.com/questions/457629/how-to- return-multiple-objects-from-a-java-method) –

+0

http://stackoverflow.com/questions/457629/how-to-return-multiple-objects-from-a-java-method, http : // stackoverflow .com/questions/1313492/one-it-possible-multiple-items-in-one-call, http://stackoverflow.com/questions/7470861/return-multiple-values-from-a-java -method-no-standard-yet –

답변

18

2 개의 값을 반환하는 메서드가 필요합니다. 그것은 가능하고 어떻게?

아니요 Java에서는 엄격하게 불가능합니다. 그러나 OO 언어 인 Java를 사용하고 있으므로 사용자 정의 데이터 유형을 작성하여 반환하면됩니다. 예를 들면 다음과 같습니다.

public class ResponseObject { 

private ArrayList<String> names = new ArrayList<String>(); 
private ArrayList<String> descriptions = new ArrayList<String>(); 

public void addName(String name) { 
    names.add(name) 
} 

public void addDescription(String desc) { 
    descriptions.add(desc) 
} 

public ArrayList<String> getNames() { 
    return names; 
} 

public ArrayList<String> getDescriptions() { 
    return descriptions; 
} 

} 
+0

+1 더 많은 방법으로 만들기. – yorkw

2

그럼 두 값을 ArrayList<String>에 추가하고 ArrayList 개체를 반환하고 두 값을 가져올 수 없습니까? 나는 이것이 할 수 있다고 생각한다.

더 좋은 옵션은 Map<String, String> 키를 사용하여 값을 입력하는 데 사용할 수 있으며 키를 사용하여 얻을 수도 있습니다.