วิธีซ้อนวิธีการทั่วไปสำหรับกิจกรรมต่างๆ

ฉันกำลังใช้กิจกรรมใหม่สำหรับ ActivityButtons ฉันมีกิจกรรมที่แตกต่างกันประมาณ 10 กิจกรรม โดยทั้งหมดใช้ส่วนท้ายเดียวกัน ในส่วนท้ายจะมีปุ่มและกิจกรรมการคลิกมากมาย ฉันเพิ่งคัดลอกวางกิจกรรม Listener ทั้งหมดสำหรับปุ่ม Footer ไปยังกิจกรรมอื่นๆ สองสามรายการเพื่อทดสอบ มันใช้งานได้ แต่ฉันต้องหาวิธีที่จะรวมพวกมันทั้งหมดไว้ด้วยกันที่ไหนสักแห่งเพื่อที่ฉันจะได้แก้ไขเพียงครั้งเดียวเมื่อจำเป็น

ฉันพยายามเก็บวิธีการทั่วไปทั้งหมดไว้ในคลาสยูทิลิตี้ที่แยกจากกันโดยทำให้พวกมันคงที่ แต่ก็มีการใช้งานที่จำกัด ฉันมีปัญหากับการอ้างอิงและวิธีการที่ไม่คงที่

ในการค้นคว้าของฉัน ฉันได้อ่านเกี่ยวกับ ViewFlipper แล้ว จะดีกว่าไหมถ้าฉันใช้ MainActivity เดียวสำหรับทุกสิ่ง และใช้ ViewFlipper เพื่อสลับระหว่างเลย์เอาต์ ฉันได้อ่านแล้วว่านี่อาจทำให้เกิดปัญหาด้านทรัพยากรบางประการ เนื่องจากกิจกรรมเดียวเท่านั้นที่จะใช้งานอยู่ตลอดเวลา

คุณมีข้อเสนอแนะสำหรับปัญหานี้หรือไม่?

ขอบคุณล่วงหน้า.


person wervdon    schedule 21.01.2013    source แหล่งที่มา


คำตอบ (2)


มีบางสิ่งที่ต้องพิจารณา

ประการแรกคือส่วนท้ายเป็นรูปแบบการออกแบบที่ค่อนข้างเป็นปัญหาบน Android เนื่องจากอุปกรณ์ที่มีปุ่มซอฟต์อยู่ใต้พื้นที่หน้าจอ จึงเป็นเรื่องง่ายมากสำหรับผู้ใช้ที่จะคลิกปุ่มระบบโดยไม่ตั้งใจเมื่อพวกเขากำลังเล็งไปที่ส่วนท้าย และในทางกลับกัน หากคุณตัดสินใจไม่ใช้ส่วนท้ายแล้ว ฉันขอแนะนำให้คุณเว้นระยะห่างระหว่างส่วนท้ายกับขอบด้านล่างของหน้าจอให้เพียงพอเพื่อช่วยบรรเทาปัญหานี้

คุณมีทางเลือกสองสามทางในการจัดการเค้าโครงและตัวฟังการคลิก คุณสามารถทำให้ส่วนท้ายเป็น Fragment ของมันเอง แล้วเพิ่มลงในแต่ละกิจกรรมที่ ต้องการมัน นี่อาจเป็นแนวทางที่ยากกว่า แต่ก็จะให้ประสบการณ์การเรียนรู้ที่ดีกับ Fragments หากคุณพร้อมสำหรับความท้าทาย

อีกทางเลือกหนึ่งคือ แต่ส่วนท้ายของคุณทั้งหมดจะคลิก Listener ภายในกิจกรรมของตนเอง จากนั้นจึงขยายสิ่งนั้นไปพร้อมกับกิจกรรมอื่นๆ ทั้งหมดของคุณ บางสิ่งเช่นนี้:

public class FooterActivity extends Activity{
    Button btn1
    //...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.id.yourLayout);
        btn1 = (Button)findViewById(R.id.btn1);
        btn1.setOnClickListener(yourClickListener);
        //...
    }
}

จากนั้นในกิจกรรมปกติของคุณเปลี่ยน extends Activity เป็น extends FooterActivity

person FoamyGuy    schedule 21.01.2013

คุณสามารถสร้าง ParentActivity ซึ่งจะจัดการกับเมธอด onClick จากนั้นให้ Activities อื่นๆ ของคุณไปที่ extend ParentActivity นั้นเพื่อทำสิ่งที่เฉพาะเจาะจงสำหรับพวกเขา

อีกวิธีคือใช้ Fragments สร้างส่วนหนึ่งที่จะจัดการ Footer และส่วนอื่นๆ จะแตกต่างกันขึ้นอยู่กับงานที่คาดว่าจะทำงานได้

person Tomislav Novoselec    schedule 21.01.2013
comment
ฉันจะตรวจสอบทั้งสองรายการแล้วรายงานกลับ - person wervdon; 21.01.2013