तो मेरे पास एक बहुत ही सरल ऐप है जिस पर मैं काम कर रहा हूं। इसका उद्देश्य 1 पीसी, और 1 या 2 मॉनीटर से संपत्ति डेटा एकत्र करना है। मेरे फॉर्म में 3 edittext विचार हैं, और 3 बटन (प्रत्येक संपत्ति के लिए एक मैं डेटा एकत्र कर रहा हूं)। बटन बारकोड स्कैनर के लिए startActivityForResult का आह्वान करते हैं, फिर मैं बटन को दबाए गए बटन के आधार पर संबंधित एडिटेक्स्ट व्यू में परिणाम पास करना चाहता हूं (उदाहरण: "एसेट - पीसी" edittext के दाईं ओर "स्कैन" बटन दबाएं, स्कैन करें और डेटा वापस करें इसके साथ जुड़े एडिटेक्स्ट में। फिर यदि आप "एसेट - मोन 1" एडिटेक्स्ट के बगल में "स्कैन" बटन दबाते हैं, तो "एसेट - मोन 1" एडिटेक्स्ट में डेटा वापस करें ... और 0 ...एकाधिक गतिविधि सक्रियता 1 गतिविधि
साथ मेरे पास जो कोड है, सभी आइटम काम करते हैं, बस इरादे से नहीं। किसी भी "स्कैन" बटन को दबाकर हमेशा परिणाम "एसेट - पीसी" के पहले संपादन दृश्य में परिणाम देता है।
public class TestShit extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void assetPcClick(View view) {
Intent intent1 = new Intent("com.google.zxing.client.android.SCAN");
intent1.setPackage("com.google.zxing.client.android");
intent1.putExtra("SCAN_MODE", "ONE_D_MODE");
startActivityForResult(intent1, 0);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents1 = intent.getStringExtra("SCAN_RESULT");
String format1 = intent.getStringExtra("SCAN_RESULT_FORMAT");
EditText assetPC = (EditText) findViewById(R.id.assetPC);
assetPC.setText(contents1);
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
public void assetMon1Click(View view) {
Intent intent2 = new Intent("com.google.zxing.client.android.SCAN");
intent2.setPackage("com.google.zxing.client.android");
intent2.putExtra("SCAN_MODE", "ONE_D_MODE");
startActivityForResult(intent2, 0);
}
public void onActivityResult2(int requestCode, int resultCode, Intent intent2) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents2 = intent2.getStringExtra("SCAN_RESULT");
String format2 = intent2.getStringExtra("SCAN_RESULT_FORMAT");
EditText assetMon1 = (EditText) findViewById(R.id.assetMon1);
assetMon1.setText(contents2);
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
public void assetMon2Click(View view) {
Intent intent3 = new Intent("com.google.zxing.client.android.SCAN");
intent3.setPackage("com.google.zxing.client.android");
intent3.putExtra("SCAN_MODE", "ONE_D_MODE");
startActivityForResult(intent3, 0);
}
public void onActivityResult3(int requestCode, int resultCode, Intent intent3) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents3 = intent3.getStringExtra("SCAN_RESULT");
String format3 = intent3.getStringExtra("SCAN_RESULT_FORMAT");
EditText assetMon2 = (EditText) findViewById(R.id.assetMon2);
assetMon2.setText(contents3);
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
}
कैसे मैं बेहतर मेरे कई "ActivityForResult" और "onActivityResult" के प्रबंधन कर सकते हैं पर कोई सुझाव?
मेरा ठीक है, आपकी सभी मदद के लिए धन्यवाद!
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents1 = intent.getStringExtra("SCAN_RESULT");
String format1 = intent.getStringExtra("SCAN_RESULT_FORMAT");
EditText assetPC = (EditText) findViewById(R.id.assetPC);
assetPC.setText(contents1);
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
String contents1 = intent.getStringExtra("SCAN_RESULT");
String format1 = intent.getStringExtra("SCAN_RESULT_FORMAT");
EditText assetMon1 = (EditText) findViewById(R.id.assetMon1);
assetMon1.setText(contents1);
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
if (requestCode == 2) {
if (resultCode == RESULT_OK) {
String contents1 = intent.getStringExtra("SCAN_RESULT");
String format1 = intent.getStringExtra("SCAN_RESULT_FORMAT");
EditText assetMon2 = (EditText) findViewById(R.id.assetMon2);
assetMon2.setText(contents1);
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
क्या आप सही उत्तर चुनने के लिए बहुत दयालु होंगे? क्रेडिट जाता है जहां क्रेडिट देय होता है ...;) – ThaMe90