Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Android

एंड्रॉइड लेआउट में गतिशील रूप से तालिका पंक्तियों को कैसे जोड़ें?


यह उदाहरण दर्शाता है कि Android लेआउट में तालिका पंक्तियों को गतिशील रूप से कैसे जोड़ा जाए।

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

चरण 3 - निम्न कोड को src/MainActivity.java

में जोड़ें
पैकेज com.app.sample;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.app.ProgressDialog;import android.graphics.Color;import android.os.AsyncTask;import android. ओएस बंडल .TableRow;import android.widget.TextView;import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.SimpleDateFormat;सार्वजनिक वर्ग MainActivity AppCompatActivity का विस्तार करती है { Private TableLayout mTableLayout; प्रोग्रेसडिअलॉग एमप्रोग्रेसबार; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); एम प्रोग्रेसबार =नया प्रोग्रेसडिअलॉग (यह); mTableLayout =(TableLayout) findViewById(R.id.tableInvoices); mTableLayout.setStretchAllColumns(true); स्टार्टलोडडाटा (); } सार्वजनिक शून्य startLoadData() {mProgressBar.setCancelable(false); mProgressBar.setMessage ("चालान लाया जा रहा है .."); mProgressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER); एम प्रोग्रेसबार.शो (); नया लोडडाटाटास्क ()। निष्पादित करें (0); } सार्वजनिक शून्य लोडडेटा () { int leftRowMargin =0; int topRowMargin=0; इंट राइटरोमार्जिन =0; इंट बॉटमरोमार्जिन =0; इंट टेक्स्टसाइज =0, स्मॉलटेक्स्टसाइज =0, मीडियमटेक्स्टसाइज =0; textSize =(int) getResources ()। getDimension (R.dimen.font_size_verysmall); smallTextSize =(int) getResources ()। getDimension (R.dimen.font_size_small); मध्यम टेक्स्ट आकार =(int) getResources ()। getDimension (R.dimen.font_size_medium); चालान चालान =नए चालान (); चालान डेटा [] डेटा =चालान। getInvoices (); SimpleDateFormat dateFormat =new SimpleDateFormat ("dd MMM, yyyy"); DecimalFormat दशमलवफ़ॉर्मेट =नया DecimalFormat ("0.00"); इंट पंक्तियाँ =डेटा। लंबाई; getSupportActionBar ()। setTitle ("चालान (" + String.valueOf (पंक्तियाँ) + ")"); टेक्स्ट व्यू टेक्स्टस्पेसर =शून्य; mTableLayout.removeAllViews (); // -1 का अर्थ है शीर्षक पंक्ति के लिए (int i =-1; i> पंक्तियाँ; i ++) { चालान डेटा पंक्ति =शून्य; अगर (i> -1) पंक्ति =डेटा [i]; अन्य { टेक्स्टस्पेसर =नया टेक्स्ट व्यू (यह); टेक्स्टस्पेसर.सेटटेक्स्ट (""); } // डेटा कॉलम अंतिम टेक्स्ट व्यू टीवी =नया टेक्स्ट व्यू (यह); tv.setLayoutParams(नया TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); tv.setGravity(Gravity.LEFT); tv.setPadding(5, 15, 0, 15); अगर (i ==-1) { tv.setText("Inv.#"); tv.setBackgroundColor(Color.parseColor("#f0f0f0")); tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, smallTextSize); } और { tv.setBackgroundColor(Color.parseColor("#f8f8f8")); tv.setText(String.valueOf(row.invoiceNumber)); tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); } अंतिम टेक्स्ट व्यू tv2 =नया टेक्स्ट व्यू (यह); अगर (i ==-1) { tv2.setLayoutParams (नया TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); tv2.setTextSize (TypedValue.COMPLEX_UNIT_PX, smallTextSize); } और { tv2.setLayoutParams(नया TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.MATCH_PARENT)); tv2.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); } tv2.setGravity(Gravity.LEFT); tv2.setPadding(5, 15, 0, 15); अगर (i ==-1) {tv2.setText ("दिनांक"); tv2.setBackgroundColor(Color.parseColor("#f7f7f7")); } और { tv2.setBackgroundColor (Color.parseColor ("#ffffff")); tv2.setTextColor(Color.parseColor("#000000")); tv2.setText(dateFormat.format(row.invoiceDate)); } फाइनल लीनियरलाउट ले कस्टमर =नया लीनियरलाउट (यह); layCustomer.setOrientation (LinearLayout.VERTICAL); ले कस्टमर.सेटपैडिंग (0, 10, 0, 10); layCustomer.setBackgroundColor(Color.parseColor("#f8f8f8")); अंतिम टेक्स्ट व्यू टीवी 3 =नया टेक्स्ट व्यू (यह); अगर (i ==-1) { tv3.setLayoutParams (नया TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT)); tv3.setPadding(5, 5, 0, 5); tv3.setTextSize (TypedValue.COMPLEX_UNIT_PX, smallTextSize); } और { tv3.setLayoutParams (नई TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT)); tv3.setPadding(5, 0, 0, 5); tv3.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); } tv3.setGravity(Gravity.TOP); अगर (i ==-1) { tv3.setText ("ग्राहक"); tv3.setBackgroundColor(Color.parseColor("#f0f0f0")); } और { tv3.setBackgroundColor(Color.parseColor("#f8f8f8")); tv3.setTextColor(Color.parseColor("#000000")); tv3.setTextSize (TypedValue.COMPLEX_UNIT_PX, smallTextSize); tv3.setText(row.customerName); } layCustomer.addView(tv3); अगर (i> -1) {अंतिम टेक्स्ट व्यू tv3b =नया टेक्स्ट व्यू (यह); tv3b.setLayoutParams(नया TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); tv3b.setGravity(Gravity.RIGHT); tv3b.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); tv3b.setPadding(5, 1, 0, 5); tv3b.setTextColor(Color.parseColor("#aaaaaa")); tv3b.setBackgroundColor(Color.parseColor("#f8f8f8")); tv3b.setText(row.customerAddress); ले कस्टमर.एड व्यू (tv3b); } अंतिम लीनियरलाउट लेअमाउंट्स =नया लीनियरलाउट (यह); layAmounts.setOrientation(LinearLayout.VERTICAL); लेअमाउंट्स।सेट ग्रेविटी (ग्रेविटी। राइट); layAmounts.setPadding(0, 10, 0, 10); layAmounts.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT)); अंतिम टेक्स्ट व्यू टीवी 4 =नया टेक्स्ट व्यू (यह); अगर (i ==-1) { tv4.setLayoutParams (नया TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT)); tv4.setPadding(5, 5, 1, 5); layAmounts.setBackgroundColor(Color.parseColor("#f7f7f7")); } और { tv4.setLayoutParams (नई TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); tv4.setPadding(5, 0, 1, 5); layAmounts.setBackgroundColor(Color.parseColor("#ffffff")); } tv4.setGravity(Gravity.Right); अगर (i ==-1) {tv4.setText("Inv.Amount"); tv4.setBackgroundColor(Color.parseColor("#f7f7f7")); tv4.setTextSize (TypedValue.COMPLEX_UNIT_PX, smallTextSize); } और { tv4.setBackgroundColor (Color.parseColor ("#ffffff")); tv4.setTextColor(Color.parseColor("#000000")); tv4.setText(decimalFormat.format(row.invoiceAmount)); tv4.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); }layAmounts.addView(tv4); अगर (i> -1) {अंतिम टेक्स्ट व्यू tv4b =नया टेक्स्ट व्यू (यह); tv4b.setLayoutParams(नया TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); tv4b.setGravity(Gravity.RIGHT); tv4b.setTextSize (TypedValue.COMPLEX_UNIT_PX, textSize); tv4b.setPadding(2, 2, 1, 5); tv4b.setTextColor(Color.parseColor("#00afff")); tv4b.setBackgroundColor (Color.parseColor ("#ffffff")); स्ट्रिंग देय =""; अगर (row.amountDue.compareTo(new BigDecimal(0.01)) ==1) {ड्यू ="ड्यू:" + दशमलवफॉर्मेट.फॉर्मैट (row.amountDue); देय =देय। ट्रिम (); } tv4b.setText(देय); layAmounts.addView(tv4b); } // तालिका पंक्ति जोड़ें अंतिम TableRow tr =new TableRow (यह); tr.setId(i + 1); TableLayout.LayoutParams trParams =new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT); trParams.setMargins(leftRowMargin, topRowMargin, rightRowMargin, bottomRowMargin); tr.setPadding(0,0,0,0); tr.setLayoutParams(trParams); tr.addView (टीवी); tr.addView(tv2); tr.addView(layCustomer); tr.addView(layAmounts); अगर (i> -1) {tr.setOnClickListener (नया व्यू। ऑनक्लिक लिस्टनर () {सार्वजनिक शून्य ऑनक्लिक (देखें वी) {टेबलरो टीआर =(टेबलरो) वी;}}); } mTableLayout.addView(tr, trParams); अगर (i> -1) {// विभाजक पंक्ति जोड़ें अंतिम तालिका पंक्ति trSep =नई तालिका पंक्ति (यह); TableLayout.LayoutParams trParamsSep =new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT); trParamsSep.setMargins(leftRowMargin, topRowMargin, rightRowMargin, bottomRowMargin); trSep.setLayoutParams(trParamsSep); टेक्स्ट व्यू tvSep =नया टेक्स्ट व्यू (यह); TableRow.LayoutParams tvSepLay =new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT); tvSepLay.span =4; tvSep.setLayoutParams(tvSepLay); tvSep.setBackgroundColor(Color.parseColor("#d9d9d9")); tvSep.setHeight(1); trSep.addView(tvSep); mTableLayout.addView(trSep, trParamsSep); } } } वर्ग LoadDataTask का विस्तार AsyncTask {@Override संरक्षित स्ट्रिंग doInBackground(Integer... params) {कोशिश {Thread.sleep(2000); } कैच (इंटरप्टेड एक्सेप्शन ई) { ई.प्रिंटस्टैकट्रेस (); } वापसी "कार्य पूर्ण"; } @Override संरक्षित शून्य onPostExecute (स्ट्रिंग परिणाम) {mProgressBar.hide (); लोड डेटा(); } @Override संरक्षित शून्य onPreExecute() { } @Override संरक्षित शून्य onProgressUpdate(Integer... मान) { } }}

चरण 4 - निम्न कोड को src/Invoices.java में जोड़ें

पैकेज com.app.sample;import java.math.BigDecimal;import java.util.Date;सार्वजनिक श्रेणी के चालान {सार्वजनिक चालान डेटा [] getInvoices() { चालान डेटा [] डेटा =नया चालान डेटा [40]; for(int i =0; i <40; i++) {इनवॉइसडेटा रो =नया इनवॉइसडेटा (); row.id =(i+1); row.invoiceNumber =row.id; row.amountDue =BigDecimal.valueOf (20.00 * i); row.invoiceAmount =BigDecimal.valueOf(120.00 * (i+1)); row.invoiceDate =नई तिथि (); row.customerName ="युवन शंकर राजा"; row.customerAddress ="1112, चेन्नई, भारत"; डेटा [i] =पंक्ति; } वापसी डेटा; }} 

चरण 5 - निम्न कोड को src/InvoiceData.java में जोड़ें

पैकेज com.app.sample;import java.math.BigDecimal;import java.util.Date;पब्लिक क्लास इनवॉइसडेटा {सार्वजनिक इंट आईडी; सार्वजनिक अंतर चालान संख्या; सार्वजनिक तिथि चालान दिनांक; सार्वजनिक स्ट्रिंग ग्राहक नाम; सार्वजनिक स्ट्रिंग ग्राहक पता; सार्वजनिक BigDecimal इनवॉइसअमाउंट; सार्वजनिक BigDecimal राशि देय;}

चरण 6 - निम्न कोड को Manifests/AndroidManifest.xml

में जोड़ें
 <एप्लिकेशन एंड्रॉइड:अनुमति बैकअप ="सच" एंड्रॉइड:आइकन ="@ मिपमैप / आईसी_लॉन्चर" एंड्रॉइड:लेबल ="@ स्ट्रिंग / ऐप_नाम" एंड्रॉइड:राउंडआईकॉन ="@ मिपमैप / आईसी_लॉन्चर_राउंड" एंड्रॉइड:सपोर्ट आरटीएल ="सच" एंड्रॉइड :theme="@style/AppTheme"> <गतिविधि android:name=".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name="android.intent.action.MAIN" /> <श्रेणी android:name=" android.intent.category.LAUNCHER" />   

आइए आपके एप्लिकेशन को चलाने का प्रयास करते हैं। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फाइलों में से एक को खोलें और रन पर क्लिक करें टूलबार से एंड्रॉइड लेआउट में गतिशील रूप से तालिका पंक्तियों को कैसे जोड़ें? आइकन। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -

एंड्रॉइड लेआउट में गतिशील रूप से तालिका पंक्तियों को कैसे जोड़ें?


  1. एंड्रॉइड में एक लाइन कैसे बनाएं?

    यह उदाहरण दर्शाता है कि मैं android में एक रेखा कैसे खींच सकता हूँ। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3 - निम्न कोड को src

  1. एंड्रॉइड में स्नैकबार के लेआउट को कैसे अनुकूलित करें?

    यह उदाहरण दर्शाता है कि Android में स्नैकबार के लेआउट को कैसे अनुकूलित किया जाए। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3 - निम्

  1. सर्कुलर इमेज व्यू एंड्रॉइड पर छाया और सीमा कैसे जोड़ें?

    यह उदाहरण दर्शाता है कि गोलाकार छवि पर छाया और बॉर्डर कैसे जोड़ा जाता है देखें android चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3