तो सवाल यह है कि, मैं एंड्रॉइड स्टूडियो में एक बटन जेनरेटर कैसे बना सकता हूं (एक अद्वितीय टेक्स्ट, अद्वितीय आईडी और अद्वितीय नाम के साथ [exanple unsig a for लूप, उनके पास करने के लिए नाम])। मुझे कुछ कोडिंग का परीक्षण किया गया है, लेकिन मुझे हमेशा कुछ त्रुटियां मिलती हैं (उदाहरण के लिए: परत पर जहां बनाया गया बटन दिखाई देना चाहिए, ...) और हर बार जब उपयोगकर्ता बटन जेनरेटर पर क्लिक करता है, तो बनाया गया बटन नीचे दिखाई देना चाहिए अंतिम बनाया गया बटन (उदाहरण के लिए एक LinearLayout में)। मैंने इसे दृश्यमान और अदृश्य के साथ करने की कोशिश की है, लेकिन मुझे लगता है कि यह करने का यह सही तरीका नहीं है। मेरे पास पहले से ही एक बटन है और हर बार जब उपयोगकर्ता उस बटन पर क्लिक करता है, तो दूसरा बटन बनाया जाएगा।

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //buttons
    btnCreate= (ImageButton)findViewById(R.id.btnCreateID);
    btnDelete= (ImageButton)findViewById(R.id.btnDeleteID);
    btnCheck=(ImageButton)findViewById(R.id.btnCheckID);
    getTime = (ImageButton) findViewById(R.id.getTimeID);


    //Textviews
    txt= (TextView)findViewById(R.id.txtID);
    timeText= (TextView)findViewById(R.id.timeTextID);

    //image
    numImage = (ImageView)findViewById(R.id.numImageID);

    //Edittexts
    getTxt= (EditText)findViewById(R.id.getTxtID);

    //change visibility
    btnDelete.setVisibility(View.INVISIBLE);
    getTime.setVisibility(View.INVISIBLE);
    btnCheck.setVisibility(View.INVISIBLE);
    txt.setVisibility(View.INVISIBLE);
    timeText.setVisibility(View.INVISIBLE);
    getTxt.setVisibility(View.INVISIBLE);
    numImage.setVisibility(View.INVISIBLE);



    btnCreateClick();
}

//hit Add
public void btnCreateClick() {

    btnCreate.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            getTxt.setVisibility(View.VISIBLE);
            getTime.setVisibility(View.VISIBLE);
            btnCheck.setVisibility(View.VISIBLE);

            btnCreate.setVisibility(View.INVISIBLE);

            onGetTimeClick();
            btnCheckClick();
            btnDeleteClick();

        }
    });
}
1
CodeMiner 15 अगस्त 2018, 17:41

3 जवाब

आप एक बटन बना सकते हैं और इसे निम्न की तरह एक लेआउट में जोड़ सकते हैं:

Button myButton = new Button(this);
myButton.setText(name);
LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout);
ll.addView(myButton);

यदि लेआउट एक लंबवत लेआउट है तो मौजूदा बटन के नीचे नए बटन जोड़े जाएंगे।

0
J.Doe 16 अगस्त 2018, 02:29

आप एक बटन बना सकते हैं और इसे निम्न की तरह एक लेआउट में जोड़ सकते हैं:

Button myButton = new Button(this);
myButton.setText(name);
myButton.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
myButton.setId(generateButtonId());
LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout);
ll.addView(myButton);

यदि लेआउट एक लंबवत लेआउट है तो मौजूदा बटन के नीचे नए बटन जोड़े जाएंगे।

ये अद्वितीय आईडी बनाने के लिए कार्य हैं

private int generateButtonId(){
    int id = getRandomNumber();
   try {
       String name = getResources().getResourceName(id);
   }catch (Resources.NotFoundException ex) {
       return id;
   }
    return generateButtonId();

}

private int getRandomNumber() {
    int min = 10;
    int max = 3000;

    Random r = new Random();
    int id = r.nextInt(max - min + 1) + min;
    return id;
}

नीचे वे संदर्भ हैं जिनका मैंने उपयोग किया है

यह देखने के लिए जांच कर रहा है कि संसाधनों में कोई आईडी मौजूद है या नहीं (R.id.something)

मैं एंड्रॉइड में विशिष्ट श्रेणी में यादृच्छिक संख्या कैसे उत्पन्न कर सकता हूं?

0
Joseph Cobbinah 16 अगस्त 2018, 10:30

तो, यह मेरे लिए काम करता है और आपके उत्तरों के लिए धन्यवाद:

Button btn;
private Button[] newBTN;
LinearLayout linearLayout;
static int i=1;
static LinearLayout.LayoutParams params;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btn= (Button)findViewById(R.id.addBTN);
    btn.setText("Add");
    linearLayout = (LinearLayout) findViewById(R.id.linear);
    linearLayout.setOrientation(LinearLayout.VERTICAL);

    params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
            LinearLayout.LayoutParams.WRAP_CONTENT);



    btn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            newBTN = new Button[99];
            newBTN[i] = new Button(MainActivity.this);

            //params.addRule(LinearLayout.BELOW, R.id.i);


            newBTN[i].setLayoutParams(params);
            newBTN[i].setText("Button "+i);
            newBTN[i].setId(i);

            //add button to the layout
            linearLayout.addView(newBTN[i]);


            Toast.makeText(MainActivity.this, "Button"+ +i+"/ ID "+String.valueOf(newBTN[i].getId()), Toast.LENGTH_SHORT).show();
            i++;
        }
    });

}
0
CodeMiner 19 अगस्त 2018, 13:48